gitcoinco / gitcoinco/web

Django email builder

Open
#8,768 0 comments 0 reactions 0 assignees View on GitHub
gpg - infrastructure
Dominant language
JavaScript
Stars
1.8k
Forks
776
PR merge metrics
No merged PRs in 30d

Description

### User Story

Email epic: https://www.notion.so/gitcoin/Gitcoin-Email-Accountability-06ed4107dd654488b562fb7b9d08e386

[comment]: # (As a , I want to so that .)

We need more control on the content of the emails in a WYSWYG builder way, not only for static data, also for dynamic blocks

We still want to put most of the mkt emails on Mautic but we need more control on the emails that are not send by Mautic, because dynamic data or transactional emails.

Agreements:

- **We need a django builder for mails**, but most of the packages are bad so there is a oss project grapejs and seems great.
- **Dynamic data**, email tokens will be created so on the admin email creator can be used like {{upcoming_hackathons}}
- The system doesn't create email, it create TEMPLATES that assigned to a tag will generate the email. Example: on the UI you will have a dropdown "email:" with options like "Daily_email" "Monthly_email" .... so means if you click Daily and create a template, next day email will use that template, next time you want to change the daily email design/ content you can just get in and edit (with grapejs) on the admin.
- 2 kind of queries, general queries and per user queries, first will going to focus on the "general queries" like upcoming hackathons, last quest, etc. per user queries will be investigated later (we need to check if is doable)
- **Future** code need to be Dry so we can reuse it to create landings on the future.
- Integrate with mautic UTM so mautic can still track the opening click bouncing etc.
- **Test email**, add a field to input an email and send button so you can test how it actually looks like in the email.

Resources
https://github.com/gitcoinco/web/pull/6728/files
https://grapesjs.com/
https://github.com/artf/grapesjs
https://mjml.io/
https://github.com/gulliverbms/django_grapesjs
https://pypi.org/project/django-grapesjs/

### Why Is this Needed

[comment]: # (Describe the problem and why this task is needed. Provide description of the current state, what you would like to happen, and what actually happen)
*Summary*:
We have a poor control on our django email system.
### Description

[comment]: # (Feature or Bug? i.e Type: Bug)
*Type*:

### Current Behavior
[comment]: # (Describe what actually happened.)
no builder
### Expected Behavior
[comment]: # (Describe what you expected to happen.)
Builder and mkt happy
### Definition of Done
[comment]: # (Any other information that would be useful, bullets are helpful.)

### Data Requirements
[comment]: # (How will we measure the success of this feature? What kind of tracking is needed for this feature (clicks, impressions, flag)?)

### Additional Information
[comment]: # (Any other information that would be useful, content, screenshots, etc.)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.