There are ways to set up a text field where you type in the body of your letter and use place holders to identify the location where you need to insert data from fields in your database. Then, to produce your letter, you use a calculation field with the substitute function to replace the placeholders with data from your database. You can set up a table of such message templates and then each record has it's own template field for a different message.
You might type a message like this into your TemplateText field:
Dear <<Salutation>> <<First Name>>,
Then your calculation field would use this expression to insert data in place of the <<place holders>>:
Substitute ( SelectedTemplate::MessageTemplate ; ["<<Salutation>>" ; SelectedContact::Salutation ] ; ["<<First Name>>" ; SelectedContact::First Name] )