How Tinderbox interprets the data on the drag is an internal function within Tinderbox, so behind the curtain and beyond the reach of the user.
Where to put code? There are several places.
In a prototype action. You could set (or add to code) in the ‘References’ prototype’s Edict. It would then fire on first use or whenever all edicts fire (e.g. on manual agent update). Of course you now have the abstract stored twice for each note so toy could remove the ‘duplicate’ like so:
$Text = $Abstract; $Abstract=;
But what if you want to retain the original $Text (i.e. the formatted citation string)? This doesn’t work as a rule or edict:
$Text = $Text + $Abstract;
I can only assume the edict code runs before the default $Text is generated, i.e. the result is only the abstract. Anyway, you only want to do this once, therefore personally I would use a stamp that I’d apply after the reference note was created. For instance:
$Text = $Text + $Abstract; $Abstract
or perhaps a second one for where RIS data ends up as $Text. The RIS is already (in v9+) in $RISDictionary) so we don’t need it in text. Indeed, it’s only there if the drag payload has no formatted citation string. So we might have a second stamp:
$Text = $Abstract; $Abstract
FWIW, with either method you still have a a further two back-up copies of the abstract as it i in $ReferenceRIS and more addressably in $ReferenceDictionary (a string accessed via $ReferenceDictionary["AB"];
as the key names are the RIS field labels: ‘AB’ for Abstract, etc.).
By the way, I misspoke above re reference $text & RIS—what you saw is BibTeX not RIS data as BibTeX was the Bookends selected export format when I was tested. My error, and corrected above to assist later readers.