Email Marketing
Kampagnen
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.
| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
name | text | none | nein | email_marketing.user | im Klartext | List name, for example Newsletter |
description | longtext | none | nein | email_marketing.user | im Klartext | What subscribers receive |
is_public | bool | none | nein | email_marketing.user | im Klartext | Whether visitors can subscribe themselves |
email_marketing_contact
A person on a mailing list
Lesegruppe: email_marketing.user. Schreibgruppe: email_marketing.user.
| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
list_id | ref → email_marketing_list | none | nein | email_marketing.user | im Klartext | The list the contact is on |
email | text | internal | ja | email_marketing.user | maskiert | Email address |
name | text | internal | ja | email_marketing.user | maskiert | Name of the contact |
consent_status | select (pending, opted_in, opted_out, bounced) | internal | ja | email_marketing.user | maskiert | Permission to mail: pending, opted_in, opted_out, bounced |
consent_date | date | internal | ja | email_marketing.user | maskiert | Day the contact gave or withdrew permission (YYYY-MM-DD) |
consent_source | text | internal | ja | email_marketing.user | maskiert | Where 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.
| Feld | Art | Datenklasse | Personenbezogene Daten | Gruppe | Agenten sehen | Beschreibung |
|---|---|---|---|---|---|---|
name | text | none | nein | email_marketing.user | im Klartext | Internal campaign name |
subject | text | none | nein | email_marketing.user | im Klartext | Email subject line |
preview_text | text | none | nein | email_marketing.user | im Klartext | Short text shown after the subject in inboxes |
from_name | text | none | nein | email_marketing.user | im Klartext | Sender name shown to recipients |
from_email | text | none | nein | email_marketing.user | im Klartext | Sender address shown to recipients |
list_id | ref → email_marketing_list | none | nein | email_marketing.user | im Klartext | The list the campaign goes to |
body | longtext | none | nein | email_marketing.user | im Klartext | Email content (HTML or Markdown, as the sender expects) |
scheduled_for | date | none | nein | email_marketing.user | im Klartext | Day the campaign is to be sent (YYYY-MM-DD) |
sent_on | date | none | nein | email_marketing.user | im Klartext | Day the campaign was sent (YYYY-MM-DD) |
sent_count | number | none | nein | email_marketing.user | im Klartext | Emails handed to the mail server |
delivered_count | number | none | nein | email_marketing.user | im Klartext | Emails accepted by recipients' servers |
opened_count | number | none | nein | email_marketing.user | im Klartext | Recipients who opened the email |
clicked_count | number | none | nein | email_marketing.user | im Klartext | Recipients who clicked a link |
bounced_count | number | none | nein | email_marketing.user | im Klartext | Emails that bounced |
unsubscribed_count | number | none | nein | email_marketing.user | im Klartext | Recipients who unsubscribed because of this campaign |
state | select (draft, scheduled, sent, cancelled) | none | nein | email_marketing.user | im Klartext | Campaign status: draft, scheduled, sent, cancelled |
Workflows
email_marketing_campaign
| Aktion | Bewegt | Wer sie ausführen darf | Freigabe |
|---|---|---|---|
email_marketing_campaign.schedule | state: draft → scheduled | email_marketing.user | nein |
email_marketing_campaign.send | state: scheduled → sent | email_marketing.manager | ja |
email_marketing_campaign.send_now | state: draft → sent | email_marketing.manager | ja |
email_marketing_campaign.unschedule | state: scheduled → draft | email_marketing.user | nein |
email_marketing_campaign.cancel | state: scheduled → cancelled | email_marketing.user | nein |
Berechtigungsgruppen
Von dieser App verwendete Gruppen:
email_marketing.manageremail_marketing.user
Freigabeschritte
Schritte, die ein Agent nur vorschlagen kann:
email_marketing_campaign.sendemail_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:
obop modules install-from email_marketingErfordert eine Datenbank und Administratorrechte.
Selbst bauen
Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden