<?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/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Audit</title><link>https://community.appian.com/discussions/f/general/39338/audit</link><description>How can we achieve a field level audit . Can someone suggest step by step .</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Audit</title><link>https://community.appian.com/thread/149527?ContentTypeID=1</link><pubDate>Wed, 02 Jul 2025 06:21:50 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:121e876b-4e61-46af-aa47-40d43317dfe2</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;OK&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149526?ContentTypeID=1</link><pubDate>Wed, 02 Jul 2025 06:13:12 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:af04e0b8-a923-4b84-bf17-00bcebc4290c</guid><dc:creator>Prakash </dc:creator><description>&lt;p&gt;Yes , I have tried with the DB approach&amp;nbsp; outlined in this conversation .&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149525?ContentTypeID=1</link><pubDate>Wed, 02 Jul 2025 06:10:32 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:953d6fa9-e91b-46f7-9f74-4cfb8bfe6b87</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;There are some solutions outlined in this conversation. Are you looking for something specific?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149524?ContentTypeID=1</link><pubDate>Wed, 02 Jul 2025 06:00:03 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8b543cfc-9e48-43a0-8fe6-98e7fcece7b5</guid><dc:creator>Prakash </dc:creator><description>&lt;p&gt;Thank you for the explanations.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149523?ContentTypeID=1</link><pubDate>Wed, 02 Jul 2025 05:59:07 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:27ffb444-657c-49b8-853f-76e454e34ee2</guid><dc:creator>Prakash </dc:creator><description>&lt;p&gt;We want to capture and display on an interface the fields changed value , who changed/modified and when .&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149273?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2025 14:00:10 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:2381a1d9-a904-4b2b-9c52-f374c8b57bae</guid><dc:creator>Prakash </dc:creator><description>&lt;p&gt;I want to record the changes , to keep track of which fields are modified by which user and the updated values.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149248?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2025 09:38:38 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ec079bbd-4db0-44dc-993c-e54788312c4f</guid><dc:creator>Harsha Sharma</dc:creator><description>&lt;p&gt;For these use cases I prefer to setup an Update triggers on my table which inserts data in to an audit table with details of the changes I want to track e.g. column name, old value, new value, timestamp, user etc.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So users can update as they like and a simple sql trigger can maintain the audit of columns/fields level changes. Below is a sample code for reference :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CREATE TRIGGER persons_update
AFTER UPDATE
ON persons FOR EACH ROW
BEGIN
    IF OLD.FirstName &amp;lt;&amp;gt; new.FirstName THEN
        insert into persons_audit_trail(Personid, column_name, old_value, new_value, done_by) values(NEW.Personid,&amp;#39;FirstName&amp;#39;,OLD.FirstName,NEW.FirstName,NEW.updated_by);
    END IF;
	IF OLD.LastName &amp;lt;&amp;gt; new.LastName THEN
        insert into persons_audit_trail(Personid, column_name, old_value, new_value, done_by) values(NEW.Personid,&amp;#39;LastName&amp;#39;,OLD.LastName,NEW.LastName,NEW.updated_by);
    END IF;
	IF OLD.Age &amp;lt;&amp;gt; new.Age THEN
        insert into persons_audit_trail(Personid, column_name, old_value, new_value, done_by) values(NEW.Personid,&amp;#39;Age&amp;#39;,OLD.Age,NEW.Age,NEW.updated_by);
    END IF;
	IF OLD.is_deleted &amp;lt;&amp;gt; new.is_deleted THEN
        insert into persons_audit_trail(Personid, column_name, old_value, new_value, done_by) values(NEW.Personid,&amp;#39;is_deleted&amp;#39;,OLD.is_deleted,NEW.is_deleted,NEW.updated_by);
    END IF;
END&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;As others mentioned you can setup record and drive this whole process from Appian as well, I prefer sql as it helps in performance in my opinion!&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149242?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2025 09:22:38 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:31af6e21-e769-4bdd-9cb6-dc2a4585a761</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;Do you want to record the changes, or keep versions of the old data?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149233?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2025 07:58:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:dd02a801-b0a0-4202-a7d2-9b020573b731</guid><dc:creator>Yashwanth Akula</dc:creator><description>&lt;p&gt;Hi &lt;a href="/members/swayangp408335"&gt;Prakash &lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Create a record type &amp;quot;Field Audit&amp;quot; with the following columns: {PK, FK, fieldName, oldValue, newValue, modifiedOn, modifiedBy}.&lt;br /&gt;&lt;br /&gt;In the interface, implement logic in the Update&lt;b&gt;&amp;nbsp;&lt;/b&gt;button to compare the previous and updated values of each field. For any field that has changed, construct a corresponding &lt;strong data-start="317" data-end="334"&gt;&amp;quot;Field Audit&amp;quot;&lt;/strong&gt; record capturing the field name, old value, new value, timestamp, and the user who made the change. Pass this data to a process model,&amp;nbsp;which will write the audit records to the database.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149232?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2025 07:55:41 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:4be5ebdd-3a44-422f-b753-34b0285b351d</guid><dc:creator>Shubham Aware</dc:creator><description>&lt;p&gt;Create a generic audit_log table with columns for table_name, field_name, record_id, old_value, new_value, changed_by, changed_date and operation. Build a corresponding Record&amp;nbsp;and create an expression rule that compares old vs new record values field-by-field, logging any differences to the audit table. In process model, capture the current record before any update operation, then after the update call your compare expression passing the old and new values along with metadata like table name, Record ID, and user. &lt;br /&gt;Then finally, Display field level log as per your need.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Audit</title><link>https://community.appian.com/thread/149231?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2025 07:35:11 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8b2bff04-2d2f-49b8-91df-af1c8f746ccb</guid><dc:creator>Alberto Cort&amp;#233;s</dc:creator><description>&lt;p data-start="127" data-end="260"&gt;There isn&amp;rsquo;t a native way in Appian to perform &lt;strong data-start="173" data-end="197"&gt;field-level auditing&lt;/strong&gt; &amp;mdash; this type of functionality has to be implemented manually.&lt;/p&gt;
&lt;p data-start="262" data-end="427"&gt;If you&amp;#39;re looking to track which fields were changed, when, and by whom, you would need to build that logic yourself.&lt;/p&gt;
&lt;p data-start="429" data-end="676" data-is-last-node="" data-is-only-node=""&gt;Would you mind sharing more details about your specific use case?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>