Is it possible to programmatically enter data in the engagement history field and how?
The engagement history is stored in the table EngagementAudit.
You can programmatically add/update the details field in that table. Trace field has a very strict structure and should be updated using the Changepoint application.
Trace holds information about ContractNumber, ContractType, mainContact, BillingAddressDetail (including change of address) and tax information.