When you send to a Salesforce Report, Marketing Cloud only cares about one of four fields ("ContactID", "Contact ID", "LeadID" or "Lead ID"). All the other fields in your report are ignored and are unavailable for personalization.
The high-level workflow of a send to a Report (or Campaign) is as follows:
- Marketing Cloud runs the report and looks for either a Lead ID or
Contact ID field in the report
- A Sendable Data Extension is created in the root Data Extension folder containing all the mapped attributes
- The IDs from the report are then used to retrieve the records of all Contacts or Leads contained in the report from CRM to populate the Sendable Data Extension
- Your email is then sent to the Sendable Data Extension
So, if you'd like to personalize your email when using the standard Send Flow, there are one of two approaches:
Map the profile attributes you require for personalization in the Subscribers -> Profile Management section of Email Studio
FirstName: %%FirstName%%
OR
Use the RetrieveSalesforceObjects() AMPScript function to get the fields you need for personalization using script:
%%[ var @rs
Set @rs= RetrieveSalesforceObjects('Contact','Id,FirstName,LastName', 'Id','=',SubscriberKey)
Set @FirstName = Field(Row(@rs,1),'FirstName')
]%%
FirstName: %%=v(@FirstName)=%%