I\'m having a problem replacing mc:edit
content areas in Mailchimp with the content that I provide.
The email is sent out to the subscribers, but none o
As per @kateray comment above, after an hour of tries I managed to insert my custom HTML from my back-end as the MailChimp campaign content via its API 3.0. For such a simple use case it is rather annoying not to have a ready-made solution on their docs. Surely MailChimp API lacks a cookbook.
So from the beginning:
a) Create the mailing list with API or with MailChimp web interface - create list and b) add the recepients to it - add members.
Create the new campaign via API create campaign or their website. Do not assign any template to it.
Assign the mailing list to the camplaign assign mailing list.
Now set the campaign content with this API endpoint. Assign the following value to the JSON body of the request you send to the endpoint:
{
"html": "<p>This is your custom HTML assigned to your campaign as content.</p>"
}
and send the request.
In the response to this request you get the HTML you set and its plain text version.
Go in the MailChimp web interface and ensure the campaign has all the check marks green.
Send out the campaign with this API request.
NB:
There's an endpoint to set the content along with the sections available at:
https://developer.mailchimp.com/documentation/mailchimp/reference/campaigns/content/#edit-put_campaigns_campaign_id_content
Should that be inside a "content" block? In the API example I see this:
},
"content": {
"html": "example html",
"sections": {
"...": "..."
},
"text": "example text",
"url": "example url",
"archive": "example archive",
"archive_type": "example archive_type"
},
I struggled with this for a few days, using the template manager in MailChimp. The only way I got it to work was exporting my existing template, adding the mc:edit tag to the code and then uploading it as a custom template.
Exporting template from MailChimp
Uploading your template to MailChimp
Example of my template code:
<div mc:edit="eventmessage">
Custom Event Message (replaced by API Call)
<br></div>
As a check, I was now able to see the section now appear when using /templates/info API call
Once I confirmed that Mailchimp saw the template section I used /campaigns/create call, as mentioned above but skipping over the html definition.
Updated campaign/create (content/sections):
},
"content": {
"sections": {
"eventmessage": "Event Message Content"
},
},
Following PHP code worked for me
$api = new MCAPI($apikey);
$type = 'regular';
$opts['list_id'] = 'id';
$opts['subject'] = 'The subject';
/*<div mc:edit="std_content00">*/
$content = array('html_std_content00'=> $template);
$retval = $api->campaignCreate($type, $opts, $content);