Campaign Monitor Dataflow - Inbound

Skip to end of metadata
Go to start of metadata

This sample dataflow demonstrates reading subscription data from Campaign Monitor and writing to Gigya. The dataflow is built of the following steps: 

  1. Reads the data from Campaign Monitor, with a specific API key and list IF. In this flow, we specified pulling the records only of unsubscribed users. The target field is a Gigya custom field (data.subscribed). The next step is rename. 
  2. Renames Campaign Monitor fields to match Gigya's format. Includes a custom field that was created at Campaign Monitor, "GigyaUID", to be matched with Gigya's "UID" field. The next step is evaluate. 
  3. Uses a JEXL expression to change the value in the subscription status field from Campaign Monitor's format ("unsubscribed") to Gigya's Boolean fomatting ("true"/"false"). The next step is to write to the Gigya database. 
  4. Writes to Gigya's database. 

For an in-depth explanation of each step, see Script Repository

  • The IdentitySync integration with Campaign Monitor does not include support for multi-client installations, segments, campaigns and accounts.
  • To meet Campaign Monitor's anti-spam policy, you must have explicit permission to email the contacts you're importing. For more information, see the Campaign Monitor terms of use.
  • See Campaign Monitor documentation on getting a list ID.
  • The Campaign Monitor date field indicates a data only, and does not include a timestamp for hours/minutes/seconds. See Unsubscribed API documentation.
 {
      "name": "Campaign monitor - inbound",
      "description": "Campaign monitor > rename > evaluate > account",
      "steps": [
        {
          "id": "campaignmonitor",
          "type": "datasource.read.campaignmonitor",
          "params": {
            "apiKey": "...",
            "listId": "...",
            "status": "unsubscribed",
            "targetField": "data.subscribed"
          },
          "next": [
            "rename"
          ]
        },
        {
          "id": "rename",
          "type": "field.rename",
          "params": {
            "fields": [
              {
                "sourceField": "GigyaUID",
                "targetField": "UID"
              },
              {
                "sourceField": "Name",
                "targetField": "profile.firstName"
              },
              {
                "sourceField": "EmailAddress",
                "targetField": "profile.email"
              }       
            ]
          },
          "next": [
            "evaluate"
          ]
        },
        {
          "id": "evaluate",
          "type": "field.evaluate",
          "params": {
            "language": "jexl",
            "fields": [
              {
                "field": "data.subscribed",
                "expression": "data_subscribed eq 'unsubscribed' ? 'false' : 'true'"
              }
            ]
          },
          "next": [
            "account"
          ]
        },
        {
          "id": "account",
          "type": "datasource.write.gigya.account"
        }
      ]
    }
  • No labels