Urvah Shabbir
Urvah Shabbir

Reputation: 985

MailChimp API - dynamic content - mc:repeatable + mc:edit

My email template has some intro text followed by a repeatable block [a picture + a button].

I would like to repeat this block some X times and each time have picture link and button link updated with new links.

Currently I am using this payload to edit one block, and it is working as intended. I have used this SO answer as a guideline.

 var data = {
             'template': {
                          'id': template_id,
                          'sections': {
                                        'editbutton': '<a class="mcnButton " title="Get Profile" href="' + button1 + '" target="_blank" style="font-weight: bold;letter-spacing: normal;line-height: 100%;text-align: center;text-decoration: none;color: #FFFFFF;">GET DATA</a>',
                                        'editimage': '<img alt="" src="' + image1 + '" width="564" style="max-width:564px; padding-bottom: 0; display: inline !important; vertical-align: bottom;" class="mcnImage">'
                                      }
                         }
             };

What I am struggling is repeating this block and updating image and button link.

I am working in Google Apps Script but I guess the problem is independence of language.

Any help would be appreciated. Thanks.

Upvotes: 1

Views: 1039

Answers (1)

Valentine Shi
Valentine Shi

Reputation: 7802

I do not think you need to use the mc:repeatable or the mc:variant at all. Use the single mc:edit="editbutton_and_editimage_items_list" MailChimp tag. Put there dynamically generated HTML <ul><li> list with your actual data via sections part of the payload you sent to the API.

E.g. your sections.editbutton_and_editimage_items_list JSON item in your var data = {..} object above would look like:

   <ul>
        <li>
            <a class="mcnButton " href="' + button1 + '" style="...">GET DATA</a></li>
            <img alt="" src="' + image1 + '" width="564" style="..." class="mcnImage">
        </li>
        <!-- Repeat the LI with different data as needed --!>
   </ul>

After you successfully set the template content of your yet-not-sent campaign with the data above, use the API to send the campaign.

Upvotes: 3

Related Questions