TicketUserServices

<back to all web services

OutboundCampaignCreateRequest

Requires Authentication
Required role:Admin
The following routes are available for this service:
POST/Outbound/Campaigns
import java.math.*
import java.util.*
import net.servicestack.client.*


open class OutboundCampaignCreateRequest
{
    var ownerId:Int? = null
    var name:String? = null
    var lane:String? = null
    var templateKey:String? = null
    var payloadJson:String? = null
    var channelOrder:String? = null
    var holdoutPercent:Int? = null
    var guardKey:String? = null
    var guardSubject:String? = null
    var sendAt:Date? = null
    var expiresAt:Date? = null
    var audienceSource:String? = null
    var people:ArrayList<OutboundCampaignPerson> = ArrayList<OutboundCampaignPerson>()
}

open class OutboundCampaignPerson
{
    var phone:String? = null
    var email:String? = null
    var devices:ArrayList<OutboundCampaignDevice> = ArrayList<OutboundCampaignDevice>()
    var pushConsent:Boolean? = null
    var smsConsent:Boolean? = null
    var emailConsent:Boolean? = null
    var payloadJson:String? = null
}

open class OutboundCampaignDevice
{
    var token:String? = null
    var platform:String? = null
}

open class OutboundCampaignResult
{
    var campaignId:Int? = null
    var decisions:HashMap<String,Int> = HashMap<String,Int>()
    var queuedByChannel:HashMap<String,Int> = HashMap<String,Int>()
    var messageStatuses:HashMap<String,Int> = HashMap<String,Int>()
    var duplicates:Int? = null
    var noIdentity:Int? = null
    var statusCode:Int? = null
    var message:String? = null
}

Kotlin OutboundCampaignCreateRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Outbound/Campaigns HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ownerId: 0,
	name: String,
	lane: String,
	templateKey: String,
	payloadJson: String,
	channelOrder: String,
	holdoutPercent: 0,
	guardKey: String,
	guardSubject: String,
	sendAt: 0001-01-01,
	expiresAt: 0001-01-01,
	audienceSource: String,
	people: 
	[
		{
			phone: String,
			email: String,
			devices: 
			[
				{
					token: String,
					platform: String
				}
			],
			pushConsent: False,
			smsConsent: False,
			emailConsent: False,
			payloadJson: String
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	campaignId: 0,
	decisions: 
	{
		String: 0
	},
	queuedByChannel: 
	{
		String: 0
	},
	messageStatuses: 
	{
		String: 0
	},
	duplicates: 0,
	noIdentity: 0,
	statusCode: 0,
	message: String
}