Listmonk

Listmonk

Listmonk er en selvhostet nyhetsbrev- og e-postlisteadministrator som arrangører kan bruke internt for å sende ut informasjons-e-poster til deltakere.

Listmonk kan installeres på din egen server, eller det kan raskt og enkelt settes opp i skyen.

Her er noen skytjenester hvor du raskt kan sette opp Listmonk-systemet:

Skytjenester
One-click deploy on Railway
Deploy on Elestio
Deploy on PikaPod

Listmonk-dashbordet ser slik ut:

splash.png

For å koble til Listmonk, gå til Klubbinnstillinger -> "Integrasjoner".

Klubbinnstillinger finner du nederst til venstre.

Under integrasjoner, finn Listmonk og klikk "Koble til".

For å koble til Listmonk, må følgende felt fylles ut:

Etter å ha fylt ut feltene og trykket "Lagre," vil systemet forsøke å koble til Listmonk og verifisere at tilkoblingen fungerer.

Når tilkoblingen er etablert, kan du velge et e-postdesign og utføre følgende handlinger:

  1. Velg e-postdesignet som sendes når et medlemskap er betalt.
  2. Utfør hendelsessynkronisering.
  3. Synkroniser medlemse-poster.
  4. Send en test "Kjøp e-post".

Hendelsessynkronisering (konkurranser eller utfordringer) #

Hver arrangørs hendelse oppretter en ny e-postliste i Listmonk, slik at deltakere kan knyttes til en spesifikk e-postliste, og arrangøren kan sende e-poster kun til deltakere av den spesifikke hendelsen.

Ved å trykke på knappen "Initialiser full hendelsessynkronisering," opprettes alle hendelser i Listmonk.

Alle hendelser vil bli lagret i følgende format: "År - Konkurransenavn".

Når en ny deltaker legges til i Listmonk, sjekker systemet om den spesifikke hendelsen er opprettet; hvis ikke, opprettes den.

Deltakersynkronisering #

Hver gang et kjøp gjøres (medlemskapsbetaling), sendes en forespørsel til Listmonk, og deltakerens e-post legges til. Både "faktura e-post," som kjøperen må fylle ut, og alle e-poster knyttet til deltakerne legges til.

Hver deltaker legges til i den spesifikke konkurranselisten, og følgende attributter legges til:

  • Hendelser - inneholder en liste over alle hendelser deltakeren har deltatt i.
  • Markedsføring - inneholder informasjon om "markedsførings" preferanser markert under kjøpstrinnet.

Denne informasjonen kan brukes til å filtrere deltakere og legge dem til nye e-postlister.

For eksempel, for å finne alle deltakere som har indikert at de ønsker å motta nyheter, kan følgende spørring brukes: (subscribers.attribs->'marketing'->>'News')::BOOLEAN = true.

Å utføre denne spørringen vil velge alle deltakere som har indikert at de ønsker å motta nyheter.

Initial deltakersynkronisering #

For å utføre den innledende deltakersynkroniseringen, må du trykke på knappen "Initialiser full datasynkronisering med Listmonk". Merk at dette kan ta lengre tid hvis antall deltakere er stort.

Kjøpsbekreftelse e-post #

DistantRace sender en automatisk e-post fra systemet når en deltaker betaler for sin deltakelse, men arrangører kan lage sitt eget e-postdesign.

Det er viktig å inkludere følgende i e-posten:

  • Hva som betales for og beløpene
  • Det totale beløpet betalt
  • En lenke til kjøpsbekreftelsen

Hvordan lage en e-post og koble den til DistantRace?

  1. Lag en kjøpsbekreftelse e-post.

I Listmonk er det mulig å lage "Transaksjonelle" e-postdesign. Lag et nytt design for kjøpsbekreftelse.

Her er et forenklet eksempel for e-posten:

<!doctype html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
        <base target="_blank">

        <style>
            body {
                background-color: #F0F1F3;
                font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;
                font-size: 15px;
                line-height: 26px;
                margin: 0;
                color: #444;
            }

            pre {
                background: #f4f4f4f4;
                padding: 2px;
            }

            table {
                width: 100%;
                border: 1px solid #ddd;
            }
            table td {
                border-color: #ddd;
                padding: 5px;
            }
            table th {
                border-color: #000;
                padding: 5px;
                text-align: left;
            }

            .wrap {
                background-color: #fff;
                padding: 30px;
                max-width: 525px;
                margin: 0 auto;
                border-radius: 5px;
            }

            .button {
                background: #0055d4;
                border-radius: 3px;
                text-decoration: none !important;
                color: #fff !important;
                font-weight: bold;
                padding: 10px 30px;
                display: inline-block;
            }
            .button:hover {
                background: #111;
            }

            .footer {
                text-align: center;
                font-size: 12px;
                color: #888;
            }
                .footer a {
                    color: #888;
                    margin-right: 5px;
                }

            .gutter {
                padding: 30px;
            }

            img {
                max-width: 100%;
                height: auto;
            }

            a {
                color: #0055d4;
            }
                a:hover {
                    color: #111;
                }
            @media screen and (max-width: 600px) {
                .wrap {
                    max-width: auto;
                }
                .gutter {
                    padding: 10px;
                }
            }
        </style>
    </head>
<body style="background-color: #F0F1F3;font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;font-size: 15px;line-height: 26px;margin: 0;color: #444;">
    <div class="gutter" style="padding: 30px;">&nbsp;</div>
    <div class="wrap" style="background-color: #fff;padding: 30px;max-width: 525px;margin: 0 auto;border-radius: 5px;">
        <p>Hello {{ .Subscriber.Name }}</p>
        <p>
            <strong>Order number: </strong> {{ .Tx.Data.orderNumber }}<br />
            <strong>Created date: </strong> {{ .Tx.Data.createdAt }}<br />
        </p>
        <br />
        <table>
        <tr><th>Name</th><th>Price</th></tr>
        {{range .Tx.Data.products}} <tr><td>{{.title }}</td><td>{{.price}} {{ .Tx.Data.currency }}</td></tr>{{end}} 	
        </table>
        Total price: {{ .Tx.Data.orderSum }} {{ .Tx.Data.currency }}
        <br />
        <p>
            <a href="{{ .Tx.Data.orderUrl }}">Open Order</a>
        </p>
    </div>
    
    <div class="footer" style="text-align: center;font-size: 12px;color: #888;">
        <p>{{ L.T "public.poweredBy" }} <a href="https://listmonk.app" target="_blank" rel="noreferrer" style="color: #888;">listmonk</a></p>
    </div>
</body>
</html>

Visuelt ser denne HTML-en slik ut:

  1. Når designet er klart, må den spesifikke malen velges i DistantRace Listmonk-integrasjonen:

Hvis designet ikke er tilgjengelig, trykk på "Oppdater" knappen (ved å trykke på denne knappen oppdateres listen over design) og åpne integrasjonen på nytt.

  1. Når designet er valgt og lagret, kan du teste hvordan designet ser ut ved å sende en test-e-post. Trykk på knappen "Test Order Email (if template is set)".

Det er det - fra dette øyeblikket, hvis en deltaker betaler for sin deltakelse, vil kun din designede e-post bli sendt.

Her er et eksempel med informasjonen som sendes til Listmonk for å sende e-posten:


{
        "subscriber_email": email,
        "template_id": template_id,
        "data": {
            "orderID": "36902",
            "orderNumber": 36902,
            "firstName": first_name,
            "lastName": last_name,
            "cartID": "36902",
            "orderUrl": "https://distantrace.com/en/cart/d5949dac-b7d9-4e93-a874-34946286c006/",
            "currency": "EUR",
            "orderSum": 30.0,
            "createdAt": "2024-05-02 15:50",
            "updatedAt": "2024-05-02 16:36",
            "paymentMethod": "payment with card",
            "paymentStatus": "paid",
            "tags": ["Competition Name"],
            "products": [
                {
                    "cartProductID": 85268,
                    "productID": "607",
                    "variantID": "432",
                    "variantTitle": "Distance Name",
                    "title": "Participant Name - Competition Name, Distance Name, Additional products",
                    "vendor": "Competition Name",
                    "quantity": 1,
                    "price": 15.0,
                },
                {
                    "cartProductID": 85268,
                    "productID": "607",
                    "variantID": "432",
                    "variantTitle": "Distance Name",
                    "title": "Participant Name - Competition Name, Distance Name, Additional products",
                    "vendor": "Competition Name",
                    "quantity": 1,
                    "price": 15.0,
                },
            ],
        },
        "content_type": "html",
    }

Vis som Markdown