Back to Integrations

Mailchimp Integration

Marketing

Optimize email campaign images

Process Campaign Images

Mailchimp API Integration
// Process Mailchimp campaign images
const mailchimp = require('@mailchimp/mailchimp_marketing');

mailchimp.setConfig({
  apiKey: 'YOUR_MAILCHIMP_API_KEY',
  server: 'YOUR_MAILCHIMP_SERVER_PREFIX'
});

async function enhanceCampaignImages(campaignId) {
  // Get campaign content
  const content = await mailchimp.campaigns.getContent(campaignId);
  
  // Extract image URLs from HTML
  const imageUrls = extractImageUrls(content.html);
  
  // Process each image
  const enhancedImages = await Promise.all(
    imageUrls.map(async (url) => {
      const response = await fetch('https://butterflyapi.com/api/v1/run', {
        method: 'POST',
        headers: {
          'Authorization': 'Bearer YOUR_BUTTERFLY_API_KEY',
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          api: 'image-enhance',
          input: { image_url: url, scale: 2 }
        })
      });
      
      const result = await response.json();
      return { original: url, enhanced: result.output.image_url };
    })
  );
  
  // Replace URLs in campaign HTML
  let updatedHtml = content.html;
  for (const img of enhancedImages) {
    updatedHtml = updatedHtml.replace(img.original, img.enhanced);
  }
  
  // Update campaign
  await mailchimp.campaigns.setContent(campaignId, { html: updatedHtml });
}