< Back

Marketing-CRM

Category:Work-experience
Tech:javascriptnextjspostgresqlreacttailwind cssvercel

Employer: LearningPlay AB

LearningPlay needed a simple Marketing-CRM that could gather data from multiple WordPress-sites. The data gathered that was needed was students and group leaders from the LMS-plugin LearnDash. This data should then be able to be used to create lists in an E-mail marketing platform and then send out e-mail campaigns to the recipients on a list. The e-mail marketing platform that was selected was Brevo, using their API to create lists and recipients.

Technology stack/frameworks:

  • Backend/frontend: NextJS/React with Tailwind CSS
  • Persistant storage: Serverless Postgresql using Prisma ORM
  • Authentication: Next-Auth
  • Hosting: Vercel

WordPress:

To be able to sync data to the Marketing-CRM, a custom WordPress-plugin was created that gathers all groups and students in a group that syncs to the Marketing-CRM using a NextJS API-route with a specified key sent as a header in the request.

Screenshots:

All data in the screenshots are from seeded faker-data, none of it is real.

The CRM-system has a couple of pages ( or views you could say ) depending on which type of entity.

Displaying a single company with all data for that company:

Displaying all the group ( ie. company ) leaders:

And then there is a page displaying all students ( which is basically the same as leaders except from the perspective/entity student. When displaying students there are some more options for filtering ( like completed courses in the last 6 months ):

To create a list you just to these steps:

  1. Select one or multiple columns in the table
  2. Press the button “Add to list from selected”

… and then a new list has been started. You can continue to add more rows from that page or go to another page in the table pagination. A popup i shown in the top right corner showing which rows that has been selected:

To create a list in Brevo you press the button “Create list” and a fullscreen-modal is shown where you first have to write the name of the new list that will be sent to Brevo:

Finally when all requirements are met the new list with the recipients are sent to the Brevo API:

If you then login into the Brevo-account the created list with the recipients ( contacts ) are visible and you can design the email template to use for the campaign:

< Back