---
title: "Email Marketing"
description: "Kampanjer. Varje app är en modul i en gemensam datamodell."
canonical: "https://obop.dev/sv/apps/email-marketing/"
lang: "sv"
---

# Email Marketing

## Vad den är till för

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.

## Vad paketet gör och inte gör

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.

## Modeller

### `email_marketing_list`

A mailing list contacts can belong to

Läsgrupp: `email_marketing.user`. Skrivgrupp: `email_marketing.manager`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `name` | text | `none` | nej | `email_marketing.user` | i klartext | List name, for example Newsletter |
| `description` | longtext | `none` | nej | `email_marketing.user` | i klartext | What subscribers receive |
| `is_public` | bool | `none` | nej | `email_marketing.user` | i klartext | Whether visitors can subscribe themselves |

### `email_marketing_contact`

A person on a mailing list

Läsgrupp: `email_marketing.user`. Skrivgrupp: `email_marketing.user`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `list_id` | ref → email_marketing_list | `none` | nej | `email_marketing.user` | i klartext | The list the contact is on |
| `email` | text | `internal` | ja | `email_marketing.user` | maskerad | Email address |
| `name` | text | `internal` | ja | `email_marketing.user` | maskerad | Name of the contact |
| `consent_status` | select (pending, opted_in, opted_out, bounced) | `internal` | ja | `email_marketing.user` | maskerad | Permission to mail: pending, opted_in, opted_out, bounced |
| `consent_date` | date | `internal` | ja | `email_marketing.user` | maskerad | Day the contact gave or withdrew permission (YYYY-MM-DD) |
| `consent_source` | text | `internal` | ja | `email_marketing.user` | maskerad | Where consent was collected, for example website signup form |

### `email_marketing_campaign`

One mailing sent to a list

Läsgrupp: `email_marketing.user`. Skrivgrupp: `email_marketing.user`.

| Fält | Typ | Dataklass | Personuppgift | Grupp | Agenter ser | Beskrivning |
|---|---|---|---|---|---|---|
| `name` | text | `none` | nej | `email_marketing.user` | i klartext | Internal campaign name |
| `subject` | text | `none` | nej | `email_marketing.user` | i klartext | Email subject line |
| `preview_text` | text | `none` | nej | `email_marketing.user` | i klartext | Short text shown after the subject in inboxes |
| `from_name` | text | `none` | nej | `email_marketing.user` | i klartext | Sender name shown to recipients |
| `from_email` | text | `none` | nej | `email_marketing.user` | i klartext | Sender address shown to recipients |
| `list_id` | ref → email_marketing_list | `none` | nej | `email_marketing.user` | i klartext | The list the campaign goes to |
| `body` | longtext | `none` | nej | `email_marketing.user` | i klartext | Email content (HTML or Markdown, as the sender expects) |
| `scheduled_for` | date | `none` | nej | `email_marketing.user` | i klartext | Day the campaign is to be sent (YYYY-MM-DD) |
| `sent_on` | date | `none` | nej | `email_marketing.user` | i klartext | Day the campaign was sent (YYYY-MM-DD) |
| `sent_count` | number | `none` | nej | `email_marketing.user` | i klartext | Emails handed to the mail server |
| `delivered_count` | number | `none` | nej | `email_marketing.user` | i klartext | Emails accepted by recipients' servers |
| `opened_count` | number | `none` | nej | `email_marketing.user` | i klartext | Recipients who opened the email |
| `clicked_count` | number | `none` | nej | `email_marketing.user` | i klartext | Recipients who clicked a link |
| `bounced_count` | number | `none` | nej | `email_marketing.user` | i klartext | Emails that bounced |
| `unsubscribed_count` | number | `none` | nej | `email_marketing.user` | i klartext | Recipients who unsubscribed because of this campaign |
| `state` | select (draft, scheduled, sent, cancelled) | `none` | nej | `email_marketing.user` | i klartext | Campaign status: draft, scheduled, sent, cancelled |

## Arbetsflöden

### `email_marketing_campaign`

| Åtgärd | Flyttar | Vem får köra den | Godkännande |
|---|---|---|---|
| `email_marketing_campaign.schedule` | state: draft → scheduled | `email_marketing.user` | nej |
| `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` | nej |
| `email_marketing_campaign.cancel` | state: scheduled → cancelled | `email_marketing.user` | nej |

## Behörighetsgrupper

Grupper som den här appen använder:

- `email_marketing.manager`
- `email_marketing.user`

## Steg som kräver godkännande

Steg som en agent bara kan föreslå:

- `email_marketing_campaign.send`
- `email_marketing_campaign.send_now`

## Vad agenter kan och inte kan göra

En agent kan läsa, söka, skapa och uppdatera poster i den här appen, och köra de åtgärder som inte kräver godkännande, inom behörighetsgrupperna för sin token.

Den kan bara föreslå de här stegen, och en person måste godkänna dem: `email_marketing_campaign.send`, `email_marketing_campaign.send_now`, `email_marketing_list.delete`, `email_marketing_contact.delete`, `email_marketing_campaign.delete`.

Personuppgifter maskeras som platshållare: `email_marketing_contact.email`, `email_marketing_contact.name`, `email_marketing_contact.consent_status`, `email_marketing_contact.consent_date`, `email_marketing_contact.consent_source`.

## Beroenden

Inga.

## Installera

Installera den från appen Customize (Marknadsplats), eller från kommandoraden:

```bash
obop modules install-from email_marketing
```

Kräver en databas och administratörsbehörighet.

## Bygg din egen

[Modulguiden visar hur appar som den här skrivs](/sv/docs/reference/module-manifest/)
