1.0 Features - Mailjet gudsis contact import


This batch application was built to enable the daily gudsis contact import to Mailjet (Sub accounts) contact list (SYENSQO CONTACTS).
We have x numbers of sub accounts setup in Mailjet, and individual sub account have a dedicated contact list (SYENSQO CONTACTS) which has to be updated on daily basis.

Major features:



2.0 System Design - Mailjet gudsis contact import




3.0 Development - Mailjet gudsis contact import

Source repository

ProjectRepository
Gudsis File Upload to Mailjethttps://gitlab.syensqo.com/syensqo-it-infra-workplace/syensqo-it-mailjet/gudsis-file-upload-to-mailjet
Mailjet-Cleanuphttps://gitlab.syensqo.com/syensqo-it-infra-workplace/syensqo-it-mailjet/mailjet-cleanup


Good to know:


Source Code Filters:

Technical Details:
Total Syensqo Sub-accounts: 27

Mailjet API call Threshold: 600 API call per minute (Exception will be thrown by Mailjet system if we exceed this limit)
Number of API Calls= Number of sub-accounts * Number of records deleted per minute * Number of API call for one email deletion
Number of API call for one email deletion:2

Current configuration: 500= 50 * 5 * 2

#Delete Batch size
BatchSize: "40"
#Program sleep/wait time in seconds
waitTime: "60"



4.0 Deployment - Mailjet gudsis contact import

Cloud functions are configured in Gitlab Pipeline for easy deployment. To deploy manually, refer to Readme file in the source code.

We have 2 cloud functions for Gudsis to Mailjet import:
Gudsis Mailjet Upload - Gitlab: Link || GCP cloud function: Link
Gudsis Mailjet Cleanup - Gitlab: Link || GCP cloud function: Link

Gitlab Deployment:

StepsScreenshots
1. Checkout the develop branch from
Gitlab and and push the code
changes to develop branch.

2. Gitlab pipeline is configured to
deploy the develop branch automatically
into the staging environment when the
code changes are pushed/merged to
develop branch.

3. When the code is merged from
develop branch to master branch, a job
is created in the Gitlab environments
(Production) which need to be triggered
manually to deploy the master branch in
production.