Email Marketing
Campagnes
À quoi elle sert
Keep mailing lists with each contact's consent status and date, and prepare campaigns. Sending reaches real people and cannot be undone, so it always needs a human approval.
Ce que fait et ne fait pas le paquet
Mailing lists, the contacts on them with their consent status and date, and campaigns with a draft, scheduled, sent flow. Sending is irreversible and reaches real people, so it needs a human approval from a manager; agents may only propose it. Campaign statistics are numbers entered or imported, not computed. Contacts are personal data: keep consent_status and consent_date accurate and never mail a contact that is not opted_in.
Modèles
email_marketing_list
A mailing list contacts can belong to
Groupe de lecture: email_marketing.user. Groupe d'écriture: email_marketing.manager.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
name | text | none | non | email_marketing.user | en clair | List name, for example Newsletter |
description | longtext | none | non | email_marketing.user | en clair | What subscribers receive |
is_public | bool | none | non | email_marketing.user | en clair | Whether visitors can subscribe themselves |
email_marketing_contact
A person on a mailing list
Groupe de lecture: email_marketing.user. Groupe d'écriture: email_marketing.user.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
list_id | ref → email_marketing_list | none | non | email_marketing.user | en clair | The list the contact is on |
email | text | internal | oui | email_marketing.user | masqué | Email address |
name | text | internal | oui | email_marketing.user | masqué | Name of the contact |
consent_status | select (pending, opted_in, opted_out, bounced) | internal | oui | email_marketing.user | masqué | Permission to mail: pending, opted_in, opted_out, bounced |
consent_date | date | internal | oui | email_marketing.user | masqué | Day the contact gave or withdrew permission (YYYY-MM-DD) |
consent_source | text | internal | oui | email_marketing.user | masqué | Where consent was collected, for example website signup form |
email_marketing_campaign
One mailing sent to a list
Groupe de lecture: email_marketing.user. Groupe d'écriture: email_marketing.user.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
name | text | none | non | email_marketing.user | en clair | Internal campaign name |
subject | text | none | non | email_marketing.user | en clair | Email subject line |
preview_text | text | none | non | email_marketing.user | en clair | Short text shown after the subject in inboxes |
from_name | text | none | non | email_marketing.user | en clair | Sender name shown to recipients |
from_email | text | none | non | email_marketing.user | en clair | Sender address shown to recipients |
list_id | ref → email_marketing_list | none | non | email_marketing.user | en clair | The list the campaign goes to |
body | longtext | none | non | email_marketing.user | en clair | Email content (HTML or Markdown, as the sender expects) |
scheduled_for | date | none | non | email_marketing.user | en clair | Day the campaign is to be sent (YYYY-MM-DD) |
sent_on | date | none | non | email_marketing.user | en clair | Day the campaign was sent (YYYY-MM-DD) |
sent_count | number | none | non | email_marketing.user | en clair | Emails handed to the mail server |
delivered_count | number | none | non | email_marketing.user | en clair | Emails accepted by recipients' servers |
opened_count | number | none | non | email_marketing.user | en clair | Recipients who opened the email |
clicked_count | number | none | non | email_marketing.user | en clair | Recipients who clicked a link |
bounced_count | number | none | non | email_marketing.user | en clair | Emails that bounced |
unsubscribed_count | number | none | non | email_marketing.user | en clair | Recipients who unsubscribed because of this campaign |
state | select (draft, scheduled, sent, cancelled) | none | non | email_marketing.user | en clair | Campaign status: draft, scheduled, sent, cancelled |
Flux de travail
email_marketing_campaign
| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
email_marketing_campaign.schedule | state: draft → scheduled | email_marketing.user | non |
email_marketing_campaign.send | state: scheduled → sent | email_marketing.manager | oui |
email_marketing_campaign.send_now | state: draft → sent | email_marketing.manager | oui |
email_marketing_campaign.unschedule | state: scheduled → draft | email_marketing.user | non |
email_marketing_campaign.cancel | state: scheduled → cancelled | email_marketing.user | non |
Groupes de permissions
Groupes utilisés par cette application :
email_marketing.manageremail_marketing.user
Étapes d'approbation
Étapes qu'un agent ne peut que proposer :
email_marketing_campaign.sendemail_marketing_campaign.send_now
Ce que les agents peuvent et ne peuvent pas faire
Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.
Il ne peut que proposer ces étapes, qu'une personne doit approuver : email_marketing_campaign.send, email_marketing_campaign.send_now, email_marketing_list.delete, email_marketing_contact.delete, email_marketing_campaign.delete.
Les données personnelles sont masquées sous forme de jetons de substitution : email_marketing_contact.email, email_marketing_contact.name, email_marketing_contact.consent_status, email_marketing_contact.consent_date, email_marketing_contact.consent_source.
Dépendances
Aucune.
Installation
Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :
obop modules install-from email_marketingNécessite une base de données et des droits d'administrateur.
Créer la vôtre
Le guide des modules montre comment sont écrites les applications de ce type