Capture `History` of changes / Create Log of changes to important value of record


At times, I feel like I want to preserve history of changes to important column in a record (while coda has built-in change tracking and you can see that inside Row Activities - it is hard to query that changes or create a log of all the changes. Here’s what I use in some of my documents and has worked out really well.

Example use case here is: I have Projects and I want to make sure all changes to Project Cost for each project is captured as history.

The steps are:

  • create Projects Table

  • create Cost History Table and have following columns in it

    • Project column - lookup column to Project Table
    • Cost column - Currency column (Make this a display column)
    • Modified By
    • Modified On

Once done, go back to Project table and create following columns.

  • Current Cost column - with formula [Cost History].Filter(Project =thisRow).Sort(false, [Modified on]).Cost.First() - this will make sure you always see Current Cost shows up next to project
  • Previous Cost Values column - with formula [Cost History].Filter(Project=thisRow AND Cost!=[Current Cost]) - this will show all previous cost values
  • create a button column with following configuration

so now to update cost, users of the doc would open RowDetail with new Row and update the value - once it is done, it will reflect back in Project table as Current value.

Here’s how it will look (this one uses new layout feature we announced here)

If you want to play with this, document is here.

Hope this helps!



Thank you for this tutorial! I had it working the other day, but now when I get to adding thisRow into the button, it no longer auto completes with the green symbol. Instead, I get “thisRow” after I close the button settings. The affect is that it guesses the name of project as =thisRow.

Nevermind. I refreshed and now it is working.