Listmonk

Listmonk

Listmonk är en egenhostad nyhetsbrev- och e-postlistahanterare som arrangörer kan använda internt för att skicka ut informativa e-postmeddelanden till deltagare.

Listmonk kan installeras på din egen server, eller så kan det snabbt och enkelt sättas upp i molnet.

Här är några molntjänster där du snabbt kan sätta upp Listmonk-systemet:

Molntjänster
One-click deploy on Railway
Deploy on Elestio
Deploy on PikaPod

Listmonk-instrumentpanelen ser ut så här:

splash.png

För att ansluta Listmonk, gå till Klubbinställningar → Integrationer.

Klubbinställningar finns i det nedre vänstra hörnet.

Under integrationer, hitta Listmonk och klicka på Anslut.

För att ansluta Listmonk måste följande fält fyllas i:

Efter att ha fyllt i fälten och tryckt på Spara, kommer systemet att försöka ansluta till Listmonk och verifiera att anslutningen fungerar.

När anslutningen är etablerad kan du välja en e-postdesign och utföra följande åtgärder:

  1. Välj e-postdesignen som skickas när ett medlemskap är framgångsrikt betalt.
  2. Utför evenemangssynkronisering.
  3. Synkronisera medlems-e-post.
  4. Skicka ett test "Köp e-post".

Evenemangssynkronisering (tävlingar eller utmaningar) #

Varje arrangörs evenemang skapar en ny e-postlista i Listmonk, vilket gör det möjligt för deltagare att kopplas till en specifik e-postlista så att arrangören kan skicka e-post endast till deltagare i det specifika evenemanget.

Genom att trycka på knappen Initiera fullständig evenemangssynk skapas alla evenemang i Listmonk.

Alla evenemang kommer att sparas i följande format: "År - Tävlingens namn".

När en ny deltagare läggs till i Listmonk, kontrollerar systemet om det specifika evenemanget har skapats; om inte, skapas det.

Deltagarsynkronisering #

Varje gång ett köp görs (medlemskapsbetalning), skickas en begäran till Listmonk och deltagarnas e-post läggs till. Både "faktura e-post", som köparen måste fylla i, och alla e-postmeddelanden kopplade till deltagarna läggs till.

Varje deltagare läggs till i den specifika tävlingslistan och följande attribut bifogas:

  • Evenemang - innehåller en lista över alla evenemang som deltagaren har deltagit i.
  • Marknadsföring - innehåller information om de "marknadsförings" preferenser som markerades under köpet.

Denna information kan användas för att filtrera deltagare och lägga till dem i nya e-postlistor.

Till exempel, för att hitta alla deltagare som har angett att de vill få nyheter, kan följande fråga användas: (subscribers.attribs->'marketing'->>'News')::BOOLEAN = true.

Att köra denna fråga kommer att välja alla deltagare som har angett att de vill få nyheter.

Initial deltagarsynkronisering #

För att utföra den initiala deltagarsynkroniseringen måste du trycka på knappen Initiera fullständig datasynk med Listmonk. Observera att detta kan ta längre tid om antalet deltagare är stort.

Köpbekräftelse-e-post #

DistantRace skickar ett automatiskt e-postmeddelande från systemet när en deltagare betalar för sitt inträde, men arrangörer kan skapa sin egen e-postdesign.

Det är viktigt att inkludera följande i e-postmeddelandet:

  • Vad som betalas för och beloppen
  • Det totala beloppet som betalats
  • En länk till köpebekräftelsen

Hur skapar man ett e-postmeddelande och ansluter det till DistantRace?

  1. Skapa ett köpbekräftelse-e-postmeddelande.

I Listmonk är det möjligt att skapa "Transaktionella" e-postdesigner. Skapa en ny design för köpbekräftelse.

Här är ett förenklat exempel för e-postmeddelandet:

<!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>

Visuellt ser denna HTML ut så här:

  1. När designen är förberedd måste den specifika mallen väljas i DistantRace Listmonk-integration:

Om designen inte är tillgänglig, tryck på Uppdatera-knappen (genom att trycka på denna knapp uppdateras listan över designer) och öppna integrationen igen.

  1. När designen är vald och sparad kan du testa hur designen ser ut genom att skicka ett test-e-postmeddelande. Tryck på knappen Testa beställnings-e-post (om mall är inställd).

Det är allt - från och med nu, om en deltagare betalar för sitt inträde, kommer endast ditt designade e-postmeddelande att skickas.

Här är ett exempel med informationen som skickas till Listmonk för att skicka e-postmeddelandet:


{
        "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",
    }

Visa som Markdown