<?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>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration</link><pubDate>Tue, 23 Apr 2024 13:13:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>Appian Max Team</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Current Revision posted to Guide by Appian Max Team on 4/23/2024 1:13:17 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h2 id="overriding_object_security_to_run_as_administrator"&gt;Overriding Object Security to Run as Administrator&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executing_multiple_smart_services"&gt;Executing Multiple Smart Services&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="invoking_javascript_within_appian"&gt;Invoking Javascript within Appian&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="viewing_documents_inline_within_the_browser"&gt;Viewing Documents Inline within the Browser&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="common_issues"&gt;Common Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/9</link><pubDate>Tue, 31 Oct 2023 17:35:50 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 9 posted to Guide by joel.larin on 10/31/2023 5:35:50 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h2 id="overriding_object_security_to_run_as_administrator"&gt;Overriding Object Security to Run as Administrator&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executing_multiple_smart_services"&gt;Executing Multiple Smart Services&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="invoking_javascript_within_appian"&gt;Invoking Javascript within Appian&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="viewing_documents_inline_within_the_browser"&gt;Viewing Documents Inline within the Browser&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="common_issues"&gt;Common Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/8</link><pubDate>Tue, 31 Oct 2023 14:29:23 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>matt.cosenza</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 8 posted to Guide by matt.cosenza on 10/31/2023 2:29:23 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h2 id="overriding_object_security_to_run_as_administrator"&gt;Overriding Object Security to Run as Administrator&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executing_multiple_smart_services"&gt;Executing Multiple Smart Services&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="invoking_javascript_within_appian"&gt;Invoking Javascript within Appian&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="viewing_documents_inline_within_the_browser"&gt;Viewing Documents Inline within the Browser&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="common_issues"&gt;Common Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/7</link><pubDate>Tue, 31 Oct 2023 14:28:31 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>matt.cosenza</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 7 posted to Guide by matt.cosenza on 10/31/2023 2:28:31 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h2 id="overriding_object_security_to_run_as_administrator"&gt;Overriding Object Security to Run as Administrator&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executing_multiple_smart_services_and-reducing_load_on_the_process_execution_engines"&gt;Executing Multiple Smart Services and Reducing Load on the Process Execution Engines&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="invoking_javascript_within_appian"&gt;Invoking Javascript within Appian&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="viewing_documents_inline_within_the_browser"&gt;Viewing Documents Inline within the Browser&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="common_issues"&gt;Common Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/6</link><pubDate>Tue, 31 Oct 2023 14:26:51 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>matt.cosenza</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 6 posted to Guide by matt.cosenza on 10/31/2023 2:26:51 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h2 id="overriding_object_security_to_run_as_administrator"&gt;&lt;b&gt;Overriding Object Security to Run as Administrator&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executing_multiple_smart_services_and-reducing_load_on_the_process_execution_engines"&gt;&lt;b&gt;Executing Multiple Smart Services and Reducing Load on the Process Execution Engines&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="invoking_javascript_within_appian"&gt;&lt;b&gt;Invoking Javascript within Appian&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="viewing_documents_inline_within_the_browser"&gt;&lt;b&gt;Viewing Documents Inline within the Browser&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="common_issues"&gt;Common Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/5</link><pubDate>Tue, 31 Oct 2023 14:25:53 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>matt.cosenza</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 5 posted to Guide by matt.cosenza on 10/31/2023 2:25:53 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h2 id="overriding_object_security_to_run_as_administrator"&gt;&lt;b&gt;Overriding Object Security to Run as Administrator&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executing_multiple_smart_services_and-reducing_load_on_the_process_execution_engines"&gt;&lt;b&gt;Executing Multiple Smart Services and Reducing Load on the Process Execution Engines&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="invoking_javascript_within_appian"&gt;&lt;b&gt;Invoking Javascript within Appian&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Viewing Documents Inline within the Browser&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="common_issues"&gt;Common Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/4</link><pubDate>Tue, 31 Oct 2023 14:20:01 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>matt.cosenza</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 4 posted to Guide by matt.cosenza on 10/31/2023 2:20:01 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Overriding object security to run as Administrator&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Executing multiple smart services and reducing load on the process execution engines&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Invoking Javascript within Appian&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Viewing documents inline within the browser&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/3</link><pubDate>Thu, 31 Aug 2023 14:58:15 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 3 posted to Guide by joel.larin on 8/31/2023 2:58:15 PM&lt;br /&gt;
&lt;div style="margin:8px 16% 8px 8%;"&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Configuration Best Practices&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Use Cases for Calling a Web API in Appian from Appian&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Overriding object security to run as Administrator&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Executing multiple smart services and reducing load on the process execution engines&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Invoking Javascript within Appian&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Viewing documents inline within the browser&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Common Issues&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/2</link><pubDate>Thu, 31 Aug 2023 14:57:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 2 posted to Guide by joel.larin on 8/31/2023 2:57:22 PM&lt;br /&gt;
&lt;div&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Configuration Best Practices&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Use Cases for Calling a Web API in Appian from Appian&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Overriding object security to run as Administrator&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Executing multiple smart services and reducing load on the process execution engines&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Invoking Javascript within Appian&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Viewing documents inline within the browser&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Common Issues&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Appian to Appian Web API Integration</title><link>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration/revision/1</link><pubDate>Thu, 31 Aug 2023 14:55:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:632923f3-7996-4762-bec9-f188c48b802d</guid><dc:creator>joel.larin</dc:creator><comments>https://community.appian.com/success/w/guide/3238/appian-to-appian-web-api-integration#comments</comments><description>Revision 1 posted to Guide by joel.larin on 8/31/2023 2:55:29 PM&lt;br /&gt;
&lt;p&gt;Appian &lt;a href="https://docs.appian.com/suite/help/latest/Web_APIs.html"&gt;Web APIs&lt;/a&gt; can be invoked by other systems or users to query or modify data within Appian, start a process, or download documents. For more information how to implement a Web API in which an external system retrieves data from Appian, try the &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial.html"&gt;Web API tutorial&lt;/a&gt;. For an example in which an external system sends data to Appian, try the other &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Tutorial_-_Level_II.html"&gt;Web API tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Configuration Best Practices&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There are a number of ways to &lt;a href="https://docs.appian.com/suite/help/latest/Web_API_Authentication.html"&gt;authenticate Appian Web APIs&lt;/a&gt;. . API Key authentication is generally the most common, and it is recommended that you &lt;a href="https://docs.appian.com/suite/help/latest/Appian_Administration_Console.html#api-keys"&gt;set up an API key&lt;/a&gt; that is tied to a service account for each system that will be interacting with Web APIs in your environment.&amp;nbsp;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;These service accounts will need to be added to the security for each object they interact with, including the Web API itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is no longer recommended to &lt;a href="https://docs.appian.com/suite/help/latest/Publishing_Process_Models_as_Web_Services.html"&gt;publish process models as a web service&lt;/a&gt;. Instead use a Web API with &lt;a href="https://docs.appian.com/suite/help/latest/Start_Process_Smart_Service.html"&gt;a!startProcess&lt;/a&gt; to start a process from an external system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Use Cases for Calling a Web API in Appian from Appian&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;There are some scenarios in which developers can design Web APIs in an Appian environment to be called from the same Appian environment. Always use an environment-specific constant when configuring the URL of the Web API in an Integration object. This ensures in Dev you are always referencing Dev, in Test you are always referencing Test, etc.&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;Overriding object security to run as Administrator&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;End users can run queries that would typically require elevated privileges (for example: fetching members of a group, querying process data, getting a list of tasks for a particular user, etc.). Any Appian expression can be executed as a specific user with the use of Web APIs coupled with integration objects.&lt;/li&gt;
&lt;li&gt;Web APIs allow users to gain access to certain information without granting them security over objects they don&amp;rsquo;t need.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Executing multiple smart services and reducing load on the process execution engines&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;For operations in the system that could take more than one second or are noticeably slow for users, it is recommended to use a!startProcess and trigger a new process to run multiple smart services after one saveInto evaluation.&lt;/li&gt;
&lt;li&gt;For operations that won&amp;rsquo;t take that long, you can make multiple integration calls, within one saveInto evaluation, against different Web APIs to run multiple smart services (e.g. editing document properties, creating a user, adding a user to a group, writing data to a data store entity, etc.). See &lt;a href="https://docs.appian.com/suite/help/latest/Smart_Services.html"&gt;Process Nodes and Smart Services&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Utilizing Web APIs instead of starting processes can reduce the load on the process execution engines.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;When utilizing Web APIs like this, the smart service calls occur as separate transactions. Therefore, you will need to account for errors occurring between smart services. For example, if you call one Web API to write a row of data then another to delete a row of data, and the deletion fails, the write will have already occurred since it&amp;#39;s a separate transaction. This is similar to handling for a process erroring between nodes, however in a Web API, you lose the ability to have a process editor debug and restart the process node.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Invoking Javascript within Appian&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;To execute Javascript in a user&amp;#39;s browser you can configure a Web API which returns HTML as the body of the response and includes a &amp;lt;script&amp;gt; tag. The Javascript in this tag will be executed when the Web API is called.&lt;/li&gt;
&lt;li&gt;The Web API can be called by providing a user an a!safeLink, which, upon clicking, will open a new browser tab and execute the Javascript in this new tab.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Note: &lt;/b&gt;As of 18.2, you will no longer be able to provide an Appian Web API as the source for a Web Content field, which is why the Javascript can only be executed in a separate tab using a!safeLink.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;b&gt;Viewing documents inline within the browser&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Instead of using a Document Download Link, you can configure a Web API in Appian which returns a document, either as an attachment or inline, and then call this Web API using a Safe Link. This will let users view, in the browser, any documents that the browser can render, rather than automatically downloading them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;b&gt;Common Issues&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Issue:&lt;/b&gt; The Web API works when tested inside Appian. 404 returned when calling from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Make sure that the credentials match that of a use in the Web API&amp;#39;s security groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Issue: &lt;/b&gt;500 error returned when calling the web API from another system.
&lt;ul&gt;
&lt;li&gt;Verify: Ensure that the Web API expression definition does not have any errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>