Email Marketing

Kampagnen

MarktplatzInhalte und DokumenteVersion 0.1.0manifest

Wofür sie gedacht ist ​

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.

Was das Paket leistet und was nicht ​

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.

Modelle ​

email_marketing_list ​

A mailing list contacts can belong to

Lesegruppe: email_marketing.user. Schreibgruppe: email_marketing.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextnoneneinemail_marketing.userim KlartextList name, for example Newsletter
descriptionlongtextnoneneinemail_marketing.userim KlartextWhat subscribers receive
is_publicboolnoneneinemail_marketing.userim KlartextWhether visitors can subscribe themselves

email_marketing_contact ​

A person on a mailing list

Lesegruppe: email_marketing.user. Schreibgruppe: email_marketing.user.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
list_idref → email_marketing_listnoneneinemail_marketing.userim KlartextThe list the contact is on
emailtextinternaljaemail_marketing.usermaskiertEmail address
nametextinternaljaemail_marketing.usermaskiertName of the contact
consent_statusselect (pending, opted_in, opted_out, bounced)internaljaemail_marketing.usermaskiertPermission to mail: pending, opted_in, opted_out, bounced
consent_datedateinternaljaemail_marketing.usermaskiertDay the contact gave or withdrew permission (YYYY-MM-DD)
consent_sourcetextinternaljaemail_marketing.usermaskiertWhere consent was collected, for example website signup form

email_marketing_campaign ​

One mailing sent to a list

Lesegruppe: email_marketing.user. Schreibgruppe: email_marketing.user.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextnoneneinemail_marketing.userim KlartextInternal campaign name
subjecttextnoneneinemail_marketing.userim KlartextEmail subject line
preview_texttextnoneneinemail_marketing.userim KlartextShort text shown after the subject in inboxes
from_nametextnoneneinemail_marketing.userim KlartextSender name shown to recipients
from_emailtextnoneneinemail_marketing.userim KlartextSender address shown to recipients
list_idref → email_marketing_listnoneneinemail_marketing.userim KlartextThe list the campaign goes to
bodylongtextnoneneinemail_marketing.userim KlartextEmail content (HTML or Markdown, as the sender expects)
scheduled_fordatenoneneinemail_marketing.userim KlartextDay the campaign is to be sent (YYYY-MM-DD)
sent_ondatenoneneinemail_marketing.userim KlartextDay the campaign was sent (YYYY-MM-DD)
sent_countnumbernoneneinemail_marketing.userim KlartextEmails handed to the mail server
delivered_countnumbernoneneinemail_marketing.userim KlartextEmails accepted by recipients' servers
opened_countnumbernoneneinemail_marketing.userim KlartextRecipients who opened the email
clicked_countnumbernoneneinemail_marketing.userim KlartextRecipients who clicked a link
bounced_countnumbernoneneinemail_marketing.userim KlartextEmails that bounced
unsubscribed_countnumbernoneneinemail_marketing.userim KlartextRecipients who unsubscribed because of this campaign
stateselect (draft, scheduled, sent, cancelled)noneneinemail_marketing.userim KlartextCampaign status: draft, scheduled, sent, cancelled

Workflows ​

email_marketing_campaign ​

AktionBewegtWer sie ausführen darfFreigabe
email_marketing_campaign.schedulestate: draft → scheduledemail_marketing.usernein
email_marketing_campaign.sendstate: scheduled → sentemail_marketing.managerja
email_marketing_campaign.send_nowstate: draft → sentemail_marketing.managerja
email_marketing_campaign.unschedulestate: scheduled → draftemail_marketing.usernein
email_marketing_campaign.cancelstate: scheduled → cancelledemail_marketing.usernein

Berechtigungsgruppen ​

Von dieser App verwendete Gruppen:

  • email_marketing.manager
  • email_marketing.user

Freigabeschritte ​

Schritte, die ein Agent nur vorschlagen kann:

  • email_marketing_campaign.send
  • email_marketing_campaign.send_now

Was Agenten tun können und was nicht ​

Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.

Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: email_marketing_campaign.send, email_marketing_campaign.send_now, email_marketing_list.delete, email_marketing_contact.delete, email_marketing_campaign.delete.

Personenbezogene Daten werden als Platzhalter maskiert: email_marketing_contact.email, email_marketing_contact.name, email_marketing_contact.consent_status, email_marketing_contact.consent_date, email_marketing_contact.consent_source.

Abhängigkeiten ​

Keine.

Installation ​

Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:

bash
obop modules install-from email_marketing

Erfordert eine Datenbank und Administratorrechte.

Selbst bauen ​

Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden