Email Marketing

Campagnes

Place de marchéContenu et documentsVersion 0.1.0manifest

À 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.

ChampTypeClasse de donnéesDonnées personnellesGroupeVu par les agentsDescription
nametextnonenonemail_marketing.useren clairList name, for example Newsletter
descriptionlongtextnonenonemail_marketing.useren clairWhat subscribers receive
is_publicboolnonenonemail_marketing.useren clairWhether 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.

ChampTypeClasse de donnéesDonnées personnellesGroupeVu par les agentsDescription
list_idref → email_marketing_listnonenonemail_marketing.useren clairThe list the contact is on
emailtextinternalouiemail_marketing.usermasquéEmail address
nametextinternalouiemail_marketing.usermasquéName of the contact
consent_statusselect (pending, opted_in, opted_out, bounced)internalouiemail_marketing.usermasquéPermission to mail: pending, opted_in, opted_out, bounced
consent_datedateinternalouiemail_marketing.usermasquéDay the contact gave or withdrew permission (YYYY-MM-DD)
consent_sourcetextinternalouiemail_marketing.usermasqué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.

ChampTypeClasse de donnéesDonnées personnellesGroupeVu par les agentsDescription
nametextnonenonemail_marketing.useren clairInternal campaign name
subjecttextnonenonemail_marketing.useren clairEmail subject line
preview_texttextnonenonemail_marketing.useren clairShort text shown after the subject in inboxes
from_nametextnonenonemail_marketing.useren clairSender name shown to recipients
from_emailtextnonenonemail_marketing.useren clairSender address shown to recipients
list_idref → email_marketing_listnonenonemail_marketing.useren clairThe list the campaign goes to
bodylongtextnonenonemail_marketing.useren clairEmail content (HTML or Markdown, as the sender expects)
scheduled_fordatenonenonemail_marketing.useren clairDay the campaign is to be sent (YYYY-MM-DD)
sent_ondatenonenonemail_marketing.useren clairDay the campaign was sent (YYYY-MM-DD)
sent_countnumbernonenonemail_marketing.useren clairEmails handed to the mail server
delivered_countnumbernonenonemail_marketing.useren clairEmails accepted by recipients' servers
opened_countnumbernonenonemail_marketing.useren clairRecipients who opened the email
clicked_countnumbernonenonemail_marketing.useren clairRecipients who clicked a link
bounced_countnumbernonenonemail_marketing.useren clairEmails that bounced
unsubscribed_countnumbernonenonemail_marketing.useren clairRecipients who unsubscribed because of this campaign
stateselect (draft, scheduled, sent, cancelled)nonenonemail_marketing.useren clairCampaign status: draft, scheduled, sent, cancelled

Flux de travail ​

email_marketing_campaign ​

ActionTransitionQui peut l'exécuterApprobation
email_marketing_campaign.schedulestate: draft → scheduledemail_marketing.usernon
email_marketing_campaign.sendstate: scheduled → sentemail_marketing.manageroui
email_marketing_campaign.send_nowstate: draft → sentemail_marketing.manageroui
email_marketing_campaign.unschedulestate: scheduled → draftemail_marketing.usernon
email_marketing_campaign.cancelstate: scheduled → cancelledemail_marketing.usernon

Groupes de permissions ​

Groupes utilisés par cette application :

  • email_marketing.manager
  • email_marketing.user

Étapes d'approbation ​

Étapes qu'un agent ne peut que proposer :

  • email_marketing_campaign.send
  • email_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 :

bash
obop modules install-from email_marketing

Né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