Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MailChimp Campaign Content Update

MailChimp campaign content docs - https://developer.mailchimp.com/documentation/mailchimp/reference/campaigns/content

I'm trying to replace some placeholders in a campaign content with actual values via the API. At first, I thought there might be some syntax errors or internal logic errors like non-unique mc:edits into a mc:repeatable that would get the HTML refused/declined by MailChimp, hence the update not taking place, however, that was not the case.

Tried replacing html with a simple <p>test</p> and it was still not working.

Here are a couple of local logs, I'll use xyz as my campaign id:

2018-02-26 16:26:13 [::1][9804][-][warning][application] calling GET /campaigns/xyz/content []

2018-02-26 16:26:13 [::1][9804][-][warning][application] got both plain_text and html versions of content

2018-02-26 16:26:13 [::1][9804][-][warning][application] calling PUT /campaigns/xyz/content {"html":"<p>test</p>"}

2018-02-26 16:26:14 [::1][9804][-][warning][application] got response [ 'plain_text' => 'test' + other MailChimp stuff such as footer, that were appended automatically by MailChimp, 'html' => '<p>test</p>' ]

// calling GET immediately after PUT in order to see if any update occurred

2018-02-26 16:26:14 [::1][9804][-][warning][application] calling GET /campaigns/xyz/content []

2018-02-26 16:26:14 [::1][9804][-][warning][application] got updated html (my "test" paragraph + auto footer from MailChimp) and proper plain_text

Everything looks fine according to these, that means both versions updated as they were supposed to. However, on the next API/MailChimp dashboard request, it displays the old HTML content, preserving the update I've just made in the plain text version only.

No errors, nothing to look into. It could be any internal MailChimp behaviour.

PS: I know about Setting Mailchimp campaign content html not working or MailChimp API v3 campaign content template sections, but none of the answers provided to those are helpful.

PS2: I know I should contact MailChimp, but according to

Our MailChimp Support Team isn't trained at in-depth API troubleshooting. If you need a developer to help you configure something using the API, check out our great Experts Directory, which lists third-party MailChimp experts who can be hired to help out.

they don't provide support for API troubleshooting.

like image 788
Ravenous Avatar asked Feb 26 '18 16:02

Ravenous


1 Answers

MailChimp doesn't allow updating the campaign's HTML content because the campaign type is based on a template.

In order to update the HTML content, the campaign has to be set to custom HTML instead of a template. You can check the type by sending a GET API request to /campaigns or /campaigns/{campaign_id} and finding the content_type attribute in the response (documentation).

Alternatively, in the dashboard, the type can be determined by editing the design of the email. Anything under 'Code your own' is HTML and templates are of course templates.

I'm not entirely sure why the first response to a PUT request on a template campaign shows the updated content, but changing the content type should let you update as you want to.

Hope this helps!

like image 68
Joel H. Avatar answered Nov 11 '22 15:11

Joel H.