Leica Florian Robert

Occupation: Web & Mobile Developer

This is an experiment: the site as it would have looked in the '90s. To see the real one, press the button at the bottom of the page.


<< Back to projects

Imanpack — case study

Role: Development, integration and server. Year: 2023.

Website: imanpack.it

A Laravel system that connects Imanpack's proprietary .NET CMS to Mailchimp: the newsletters prepared in the CMS become bilingual campaigns, created and sent or scheduled automatically, with a dashboard to follow their status.

You are viewing this case study with the Legacy engine. To see it as it was designed, enable native rendering below.

Two systems that didn't talk

Imanpack manages its content with a proprietary CMS written in .NET, on Microsoft SQL Server. Newsletters, instead, go through Mailchimp.

The goal: build the newsletters straight from the data entered in the CMS, without copying it over by hand and without opening Mailchimp.

From the CMS to the inbox

  • The CMS writes the newsletter into a table of its database: subject, list, send date, texts, attachments, video. It's the only point of contact between the two systems, which never call each other.
  • Every minute Laravel looks for new newsletters in the table.
  • It builds the email from an MJML template and uploads it to Mailchimp.
  • It creates the campaign on the list chosen in the CMS and sends it right away or schedules it for the given date.
  • When Mailchimp sends it, a webhook tells Laravel, which marks the newsletter as sent with the exact time.

When something goes wrong

If the list doesn't exist or Mailchimp rejects the campaign, the newsletter goes into error with its message, and the system deletes what it had just created on Mailchimp: the next attempt starts clean. It retries on its own every minute, up to three times.

A dashboard shows the status of every newsletter, the error message and an exact preview of the email, with a button to regenerate it after fixing the data in the CMS. A campaign already sent never goes out a second time.

Two languages, one email

Every newsletter is bilingual: English on the left, Italian on the right, from the same CMS row. The template is written in MJML, which turns it into HTML fit for email clients.

Attachments with a download button, YouTube videos and images appear only if the CMS has them. The footer, with the privacy notice and the unsubscribe link, is filled in by Mailchimp for each recipient.

On the client's server

  • The system runs on Imanpack's Windows server, next to the CMS: Windows Server configured by me to expose the application on a dedicated port.
  • PHP installed and tuned on the server.
  • Scheduled tasks set up, automatic deploys included: a task checks for updates and pulls them with git pull.
  • Laravel and the CMS share the same SQL Server database: every minute Laravel checks the newsletter table and reacts when it changes.

Data in the CMS, the rest automatic

  • No more manual work on Mailchimp: whoever prepares the newsletter works only in the CMS.
  • Bilingual newsletters, to reach international customers too.
  • Sent right away or scheduled, with the status of every newsletter always in view on the dashboard.
  • Sign-ups and unsubscribes from the Imanpack website wired straight to the Mailchimp list, with no duplicates.

Best viewed with Netscape Navigator 4.0 — 800×600

Privacy Policy