If you are anything like me, you view new projects as an opportunity to stretch your abilities, tackle a challenge, and improve your coding. This blog entry is an attempt to share a few items that stood out to me on one of Zaengle's Laravel integrations. Hopefully this will stimulate your thinking as you find creative solutions for similar problems!

Project Requirements

One of our clients recently came to us with the following workflow they'd like the Zaengle team to implement for them:

They wanted to compose a blog entry in their CMS.

Upon publishing of the entry, they wanted the content of the blog entry to be emailed to a filtered group of their customer database (stored in Marketo).

Finally, they wanted to be able to track email metrics from within their customer database.

Prerequisites

Customer/Lead data is stored in System A

Emails should be processed with System B

All of this should be automated

Transactional data should be persisted

Our Solution

After brainstorming with the team and client, we decided that since there were at least 3 different systems in play (CMS, Customer Database, & Mail Processor), we needed to write a custom application that would bring all of them together. (Hence the Laravel as an Intermediary title to this blog post!)

Since all customer information lives in System A, when the client wanted to send an email blast out to a particular segment of customers, a request was made to our Laravel application (let's call it the "Intermediary App"). The Intermediary App would then acquire the necessary customer data from System A, assemble it into a campaign, and pass it off to System B, the mailing service.

As customers would interact with the emails, System B would send webhooks back to the Laravel application, which would be logged, and then sent on to the customer database to be associated with the customer records.