Create Push Campaign

Use this interface to create a push campaign object.

Note: The Responsys Advanced API is generally available for all Responsys customers.

Service URL:

/rest/api/push/v1.3/campaigns/push/{campaignName}

Required Path Parameters:

campaignName - Name of the Push campaign to be created.

Request Method:

POST

Request Header:

Authorization=<AUTH_TOKEN>

Content-Type=application/json

Request Body - Required Properties:

folderName – Name of the folder where the campaign will be stored.

description – A description of the campaign.

Sample Request Body

{
  "campaignMetadata": {
    "folderName": "<folderName>",
    "description": "<description>",
    "marketingStrategy": "<marketingStrategy>",
    "marketingProgram": "<marketingProgram>",
    "appName": "<appName>"
  },
  "dataSource": {
    "dataSourceTables": [
      {
        "folder": "<dataSourceFolderName>",
        "type": "<dataSourceType>",
        "alias": "<dataSourceAlias>",
        "name": "<dataSourceName>",
        "columns": [
          {
            "alias": "<columnAlias>",
            "defaultValue": null,
            "name": "<columnName>",
            "lookupKey": false
          },
        ]
      },
    ],
    "dynamicVariables": {
      "columns": [
        {
          "alias": "<dynamicVariableAlias>",
          "defaultValue": null
        }
      ]
    }
  },
  "message": {
    "title": "<title>",
    "textMessage": "<textMessage>",
    "iosMedialUrl": "<iosMediaUrl>",
    "androidImageUrl": "<androidImageUrl>",
    "deepLinkUrl": "<deepLinkUrl>"
  },
  "launchSettings": {
    "progressEmailAddresses": [
      "<progressEmailAddress>"
    ],
    "skipAlertEnabled": true,
    "skipAlertPercent": 10,
    "sentAlertEnabled": false,
    "sentAlertPercent": null,
    "startAlertEnabled": false,
    "emptyAlertEnabled": false,
    "failureEmailAddresses": [
      "<failureEmailAddress>"
    ],
    "skippedLaunchEmailAddresses": [
            "<skippedLaunchEmailAddress>"
     ],
    "launchThrottleRate": <launchThrottleRate>
  },
  "targeting": {
    "filterNames": <filterNames>,
    "audienceName": "<audienceName>",
    "allRecipients": <allRecipients>
  }
}


Sample Response Body - Success

{
    "campaignMetadata": {
        "folderName": "<folderName>",
        "description": "<description>",
        "marketingStrategy": "<marketingStrategy>",
        "marketingProgram": "<marketingProgram>",
        "appName": "<appName>",
        "channelListName": "<channelListName>",
        "type": "Push",
        "campaignName": "<campaignName>"
    },
      "dataSource": {
    "dataSourceTables": [
      {
        "folder": "<dataSourceFolderName>",
        "type": "<dataSourceType>",
        "alias": "<dataSourceAlias>",
        "name": "<dataSourceName>",
        "columns": [
          {
            "alias": "<columnAlias>",
            "defaultValue": null,
            "name": "<columnName>",
            "lookupKey": false
          },
        ]
      },
    ],
    "dynamicVariables": {
      "columns": [
        {
          "alias": "<dynamicVariableAlias>",
          "defaultValue": null
        }
      ]
    }
  },
    "message": {
        "title": "<title>",
        "textMessage": "<textMessage>",
        "iosMedialUrl": "<iosMediaUrl>",
        "androidImageUrl": "<androidImageUrl>",
        "deepLinkUrl": "<deepLinkUrl>"
    },
    "launchSettings": {
        "progressEmailAddresses": [
            "<progressEmailAddress>"
        ],
        "skipAlertEnabled": true,
        "skipAlertPercent": 10,
        "sentAlertEnabled": false,
        "sentAlertPercent": null,
        "startAlertEnabled": false,
        "emptyAlertEnabled": false,
        "failureEmailAddresses": [
            "<failureEmailAddress>"
        ],
        "skippedLaunchEmailAddresses": [
            "<skippedLaunchEmailAddress."
        ],
        "launchThrottleRate": <launchThrottleRate>
    },
    "targeting": {
        "filterNames": <filterNames>,
        "audienceName": <audienceName>,
        "allRecipients": <allRecipients>
    },
    "links": [
        {
            "rel": "self",
            "href": "/pushapi/rest/api/push/v1.3/campaigns/<campaignName>/",
            "method": "POST"
        },
        {
            "rel": "updatePushCampaign",
            "href": "/pushapi/rest/api/push/v1.3//campaigns/<campaignName>",
            "method": "PUT"
        },
        {
            "rel": "deletePushCampaign",
            "href": "/rest/api/push/v1.3//campaigns/<campaignName>",
            "method": "DELETE"
        },
        {
            "rel": "getPushCampaign",
            "href": "/pushapi/rest/api/push/v1.3//campaigns/<campaignName>",
            "method": "GET"
        }
    ]
}

Other Sample Requests

Create a push campaign for iOS 15 and above devices, using the interruptionLevel and relevanceScore parameters to determine notification importance. See Push Campaigns Object Properties Reference to learn more about these parameters.

{
  "campaignMetadata": {
    "folderName": "<folderName>",
    "description": "<description>",
    "marketingStrategy": null,
    "marketingProgram": null,
    "appName": "<appName>"
  },
  "dataSource": {
    "dataSourceTables": [
      {
        "folder": "<dataSourceFolderName>",
        "type": "CHANNEL_LIST",
        "alias": "<dataSourceAlias>",
        "name": "<dataSourceName>",
        "columns": [
          {
            "alias": "<columnAlias>",
            "defaultValue": <defaultValue>,
            "name": "<columnName>",
            "lookupKey": false
          },
          {
            "alias": "<columnAlias>",
            "defaultValue": "<defaultValue>",
            "name": "<columnName>",
            "lookupKey": false
          }
        ]
      },
      {
        "folder": "~System",
        "type": "PROFILE_LIST",
        "alias": "<folderAlias>",
        "name": "Push_App_List",
        "columns": [
          {
            "alias": "MOBILE_NUMBER_",
            "defaultValue": null,
            "name": "MOBILE_NUMBER_",
            "lookupKey": false
          }
        ]
      },
      {
        "folder": "Push",
        "type": "PROFILE_EXTENSION",
        "alias": "Profile_Pet",
        "name": "Profile_Pet",
        "columns": [
          {
            "alias": "<listAlias>",
            "defaultValue": null,
            "name": "<RIID_IO>",
            "lookupKey": false
          }
        ]
      },
      {
        "folder": "Push",
        "type": "CHANNEL_EXTENSION",
        "alias": "APP_CHANNEL_PET",
        "name": "APP_CHANNEL_PET",
        "columns": [
          {
            "alias": "<listAlias>",
            "defaultValue": null,
            "name": "DGF_APP_PET",
            "lookupKey": false
          }
        ]
      },
      {
        "folder": "Push",
        "type": "SUPPLEMENTAL_TABLE",
        "alias": "Valid_Supp",
        "name": "Valid_Supp",
        "columns": [
          {
            "alias": "BROWSER_",
            "defaultValue": null,
            "name": "BROWSER_",
            "lookupKey": false
          }
        ]
      }
    ],
    "dynamicVariables": {
      "columns": [
        {
          "alias": "<dynamicVariable>",
          "defaultValue": null
        },
        {
          "alias": "<dynamicVariable>",
          "defaultValue": null
        }
      ]
    }
  },
  "message": {
    "title": "<title>",
    "textMessage": "<textMessage>",
    "iosMedialUrl": "<iosMediaUrl>",
    "androidImageUrl": "<androidImageUrl>",
    "deepLinkUrl": "<deepLinkUrl>",
    "interruptionLevel": "active",
    "relevanceScore": 0.5
  },
  "launchSettings": {
    "progressEmailAddresses": [
      "<progressEmailAddress>",
      "<progressEmailAddress>"
    ],
    "skipAlertEnabled": true,
    "skipAlertPercent": 10,
    "sentAlertEnabled": false,
    "sentAlertPercent": null,
    "startAlertEnabled": false,
    "emptyAlertEnabled": false,
    "failureEmailAddresses": [
      "<failureEmailAddress>",
      "<failureEmailAddress>"
    ],
    "skippedLaunchEmailAddresses": [
      "<skippedLaunchEmailAddress>"
    ],
    "launchThrottleRate": <launchThrottleRate>
  },
  "targeting": {
    "filterNames": [
      
    ],
    "audienceName": null,
    "allRecipients": true
  }
}

Sample Response Body - Failure

400 Bad Request

Invalid campaign type: Requests fail if the campaign specified in the request is not a push campaign. The error resembles:

{
  "type": "",
  "title": "Invalid request parameters",
  "errorCode": "INVALID_PARAMETER",
  "detail": "Invalid Campaign Type.",
  "errorDetails": []
}

Invalid request parameters: Requests fail from a variety of potential bad inputs, such as multiple targeting inputs, invalid email addresses. invalid media URLs, and invalid data source properties. The error resembles:

{
    "type": "",
    "title": "Invalid request parameters",
    "errorCode": "INVALID_PARAMETER",
    "errorDetails": {
        "targeting": [
            "Multiple Targeting options not allowed"
        ],
        "campaignMetadata": [],
        "launchSettings": [
            "Progress Email Address [abcgmail.com] is not valid",
            "Failure Email Address [abcgmail.com] is not valid",
            "Failure Email Address [test2gmail.com] is not valid"
        ],
        "message": [
            "Invalid Android Image Url"
        ],
        "dataSource": [
            "Channel list [Push_App_List_APP] not found or Invalid",
            "Data Source Column name [API_KEY_1] not found in datasource [Push_App_List_APP]",
            "Data Source Column name [RIID_] not found in datasource [Push_App_List_APP]",
            "Duplicate data source alias [api_key_alias] not allowed"
        ]
    }
}