Find your content:

Search form

You are here

How To Display Values from a Data Extension with AMPScript

 
Share

OK. So I have read all of the documentation, and tried this on my own, but this is all still coming up Japanese to me. I need help writing the code I need to bring data in from an extension to create unique offers within an email.

The Data Extension exists of the subscribers LoyaltyID (which will link them to their list), an offer image (OfferImage1), an offer savings amount (OfferSavings1), an offer description (OfferDesc1), and an offer URL (OfferURL1). Each offer is generated for each individual uniquely. The data for these offers is stored in the Data Extension (Test_DataExtension).

The offer field will appear like this (there will be three offers total):

enter image description here

Is there anyone out there who can help me write the code for this?


Attribution to: Kymmburleigh

Possible Suggestion/Solution #1

You are referencing field names using %%= FIELD NAME =%% in order to reference a Sendable Data Extension's field you'll need to remove the = sign. Simply enter %%FIELD NAME%% will give you the value.


Attribution to: Amtera

Possible Suggestion/Solution #2

In order to grab information from a data extension, there is one of two ways to go about this.

1. Using a non-Sendable Data Extension

When you use a non-sendable data extension, you need to individually lookup each item based on the current subscriber's email address, subscriber key, or some other identifier. Here is a code snippet that shows how this would work:

%%[
SET @rowset = LookupRows("Offers","EmailAddress", emailaddr)
SET @row = Row(@rowset, 1)
]%%

%%= Field(@row, "OfferImg")=%%<br>
%%= Field(@row, "LoyaltyID")=%%<br>
%%= Field(@row, "OfferDesc")=%%<br>
%%= Field(@row, "OfferSavings")=%%<br>
%%= Field(@row, "OfferURL")=%%<br>

You would get a @rowset based on the identifier (in this case emailaddr). You would then grab the first row (in most cases it's the first row, but not always). You would then grab the specific field from that particular @row. @rowset and @row can be named anything, I'm using very literal variable names here. You grab each field using the Field() function, passing in tow parameters, the row and the column name, like below:

%%= Field(@row, dataExtensionColumnName)=%%

2. Using a Sendable Data Extension

This simplifies your code quite a bit when you send an email to a sendable data extension. Each row in your sendable data extension should be unique in this case, as each row would be a new email that is sent. The same results as above would be produced with:

%%OfferImg%%<br>
%%LoyaltyID%%<br>
%%OfferDesc%%<br>
%%OfferSavings%%<br>
%%OfferURL%%<br>

Sendable data extension fields behave just like list attributes, so that personalization strings like the above code shows work. Note: Attributes take precedence here, meaning that if you have LoyaltyID in your list attributes, and LoyaltyID in your sendable data extension, the list attribute's LoyaltyID would be the value used.


Attribution to: Kelly J Andrews
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/30923

My Block Status

My Block Content