Why are merge fields blank when I use them in a mailing?
By design, opportunity and incident merge fields will be blank in a broadcast mailing due to their relationship with the contact object. You can pass information from contact or parent objects but not from the child objects.
When you send a mailing to a contact, this mailing will associate all merge fields to fields for this contact. For example, if you select first_name, then each contact that receives the mailing will see his first name. If you select any field from incidents or opportunities which information will be displayed? A contact can have many opportunities or incidents, therefore the system doesn't know how to make the association and the field will be blank. Note: The same also applies to Asset merge fields in broadcast mailings.
If the mailing is transactional, then all merge fields will take the values associated to the specific record based on the transaction. For example, if the mailing is sent when an incident custom field has a value, then the merge fields will have values specific to that incident.