Then you set the Response Date field to be a Calculated Date field and when Response Field have any information use Get(CurrentDate)
If( Not Empty( Response Field ) ; Get(CurrentDate) )
Thank you. But if I make Response Date into a calculation field, isn't it going to update with Get(CurrentDate) every single day?
When you define the calculation on that field, check the box:
Do NOT replace existing value of field (if any)
And you want to set this up as a date field with an auto-entered calculation--not a calculation field with a date result type.
Re: "I’ve emailed a drip campaign. Besides their name and email address, each Recipient record contains a set of fields that indicate the date when each stage of the drip campaign was emailed to them."
Looking away from your actual question, given the above statement this looks like you need to rethink your structure. It would be much simpler to track everything if your email campaigns were in a separate related table.
In the definition of the data table - specify your ResponseDate field to be a timestamp
Then in the Options section for the field set the field to be "ModificationDate"
You can then set any layout to display only the date or the date and time of the response.
No scripting - no fuss.
What I do for every table definition in my database is set 6 self-filling fields - before any other data definition:
ID - a unique record ID - usually calculated to Get(UUID)
ParentID - a link to the record in the Parent Table - this will be always empty for the top Parent table
Created - timestamp for the first time this record is created
CreateBy - provides details of the user logged in
Modified - timestamp of the last modification to the record
ModifiedBy - details of the user who modified the data