Mailmodo Source

Ingest your event data from Mailmodo into RudderStack.

Mailmodo is an interactive email marketing tool. It provides several features such as transactional campaigns, email automation and drip emails with customer journeys, WYSIWYG email editor, and many other tool integrations.

This guide will help you set up Mailmodo as a source in RudderStack.

Getting started

Follow these steps to set up your Mailmodo source in the RudderStack dashboard:

  1. Go to your RudderStack dashboard and click Add Source. From the list of Event Streams sources, select Mailmodo.
  2. Assign a name to your source and click Continue.
  3. Your Mailmodo source is now configured. Note the Webhook URL in the Settings tab:
Mailmodo source webhook URL
  1. Log into your Mailmodo account and enter the Webhook URL based on the required format. Mailmodo can send data to a webhook in any of the following ways:
Mailmodo source webhook URL
  • By adding Mailmodo’s webhook integration from the template builder and use it to export data. Follow the detailed steps from Mailmodo documentation:
Mailmodo source webhook URL

Event transformation

RudderStack ingests the Mailmodo events after converting them into the RudderStack event format. It also maps the following properties from the Mailmodo event payload to the RudderStack properties:

Mailmodo propertyRudderStack propertyNotes
mailmodoUserIdcontext.externalId[0].typeOnly when the webhook is set up as an action in the user journey.
triggerData.userIdcontext.externalId[0].valueOnly when the webhook is set up as an action in the user journey.
SHA-256 hash of triggerData.email/recipientData.email/recipientEmailanonymousId-
triggerData.email/recipientData.email/recipientEmailcontext.traits.email-
triggerData.triggerSourceeventIf triggerData.triggerSource is not present, the event name is sent as Form Submitted.
recipientDatacontext.traits-
recordedAt.tsoriginalTimestamp-
info
Barring recipientData, recordedAt, email, and userId, RudderStack assigns the rest of the payload fields to properties after flattening them.

How RudderStack creates the event payload

This section details how RudderStack receives the data from Mailmodo source for different formats and creates the resulting payload.

  • If you choose to send webhook as an action in the journey, a sample payload sent by Mailmodo is shown below:
{
  "triggerData": {
    "data": {},
    "eventProperty": {
      "Name": "APPLE iPhone 13 (Blue, 128 GB)",
      "Category": "Mobiles",
      "Is Purchased": "false",
      "Price": "829",
      "Currency": "USD"
    },
    "triggerSource": "New Custom Event Trigger - Product Viewed",
    "email": "alex@example.com",
    "userId": "d3775892-****-4f2f-b9d5-e49810eb2cae",
    "journeyId": "3f135bf7-****-4e31-b265-f61cfe1bd423"
  }
}

RudderStack transforms the above payload into the following payload:

{
  "anonymousId": "26c9ad4b531287858155ffa834be13dddc2c45df6e29af7230408953d732dd92",
  "context": {
    "externalId": [{
      "id": "d3775892-****-4f2f-b9d5-e49810eb2cae",
      "type": "mailmodoUserId"
    }],
    "traits": {
      "email": "alex@example.com"
    },
    "integration": {
      "name": "Mailmodo",
      "version": "1.0.0"
    },
    "library": {
      "name": "unknown",
      "version": "unknown"
    }
  },
  "event": "New Custom Event Trigger - Product Viewed",
  "integrations": {
    "Mailmodo": false
  },
  "properties": {
    "triggerData.eventProperty.Category": "Mobiles",
    "triggerData.eventProperty.Currency": "USD",
    "triggerData.eventProperty.Is Purchased": "false",
    "triggerData.eventProperty.Name": "APPLE iPhone 13 (Blue, 128 GB)",
    "triggerData.eventProperty.Price": "829",
    "triggerData.journeyId": "3f135bf7-****-4e31-b265-f61cfe1bd423",
    "triggerData.triggerSource": "New Custom Event Trigger - Product Viewed"
  },
  "type": "track"
}
  • If you choose to export the Mailmodo template submissions to your software stack using a webhook, a sample payload sent by Mailmodo is shown below:
{
  "fuuid": "27905",
  "next-step-id": "success",
  "total-steps": "3",
  "responseId": "b9a5d224-cc5a-4e64-9800-5a3db9515fdf",
  "recipientEmail": "alex@example.com",
  "formId": "formosztd5",
  "recordedAt": {
    "ts": 1662695704,
    "date": "2022-09-09",
    "hour": 9,
    "minute": 25
  },
  "submissionSource": "amp",
  "elementjbtz42": "Everything ",
  "element8jzo13": ["Reliable", "High Quality", "Useful"],
  "recipientData": {
    "email": "alex@example.com"
  },
  "recommend": "9",
  "liking": "upvote",
  "satisfaction": "4",
  "campaignId": "0b53e1bf-84ae-4198-9184-8a4d6e1fa3dd",
  "campaignName": "Campaign-testing"
}

RudderStack transforms the above payload into the following payload:

{
  "anonymousId": "cd5dbd2727742c2957771e61eef4e296f3fb263294e184fcb8af98b7ccd372c7",
  "context": {
    "integration": {
      "name": "Mailmodo",
      "version": "1.0.0"
    },
    "library": {
      "name": "unknown",
      "version": "unknown"
    },
    "traits": {
      "email": "alex@example.com",
      "recipientData": {
        "email": "alex@example.com"
      }
    }
  },
  "event": "Form Submitted",
  "integrations": {
    "Mailmodo": false
  },
  "originalTimestamp": "2022-09-09T03:55:04.000Z",
  "properties": {
    "campaignId": "0b53e1bf-84ae-4198-9184-8a4d6e1fa3dd",
    "campaignName": "Campaign-testing",
    "element8jzo13[0]": "Reliable",
    "element8jzo13[1]": "High Quality",
    "element8jzo13[2]": "Useful",
    "elementjbtz42": "Everything ",
    "formId": "formosztd5",
    "fuuid": "27905",
    "liking": "upvote",
    "next-step-id": "success",
    "recommend": "9",
    "responseId": "b9a5d224-cc5a-4e64-9800-5a3db9515fdf",
    "satisfaction": "4",
    "submissionSource": "amp",
    "total-steps": "3"
  },
  "type": "track"
}

Questions? Contact us by email or on Slack