Campaign data model

FieldTypeRequiredDescription
idstringNoUnique identifier for the campaign
created_atstring (date-time)NoWhen the campaign was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)NoWhen the campaign was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNoCampaign nametitle
typestringNoCampaign type (e.g., regular, automation, ab_test)
statusenumNoCampaign status Values: DRAFT, SCHEDULED, SENDING, SENT, CANCELLED, PAUSED, ARCHIVED, OTHER
list_idsstring[]NoAssociated listaudience IDs
subject_linestringNoEmail subject line
preview_textstringNoEmail preview text
from_namestringNoSender name
from_emailstringNoSender email address
reply_to_emailstringNoReply-to email address
send_atstring (date-time)NoScheduled send time (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

TypeScript

TypeScript
export type MarketingCampaign = {
	id?: string; // Unique identifier for the campaign
	created_at?: string-time; // When the campaign was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // When the campaign was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string; // Campaign nametitle
	type?: string; // Campaign type (e.g., regular, automation, ab_test)
	status?: 'DRAFT' | 'SCHEDULED' | 'SENDING' | 'SENT' | 'CANCELLED' | 'PAUSED' | 'ARCHIVED' | 'OTHER'; // Campaign status
	list_ids?: string[]; // Associated listaudience IDs
	subject_line?: string; // Email subject line
	preview_text?: string; // Email preview text
	from_name?: string; // Sender name
	from_email?: string; // Sender email address
	reply_to_email?: string; // Reply-to email address
	send_at?: string-time; // Scheduled send time (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	raw?: any; // Raw data from integration
} 

Zod

Zod
import { z } from 'zod';

export const ZodMarketingCampaign = z.object({
	id: z.string().optional().describe("Unique identifier for the campaign"),
	created_at: z.string-time().optional().describe("When the campaign was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("When the campaign was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional().describe("Campaign nametitle"),
	type: z.string().optional().describe("Campaign type (e.g., regular, automation, ab_test)"),
	status: z.enum("DRAFT", "SCHEDULED", "SENDING", "SENT", "CANCELLED", "PAUSED", "ARCHIVED", "OTHER").optional().describe("Campaign status"),
	list_ids: z.array().optional().describe("Associated listaudience IDs"),
	subject_line: z.string().optional().describe("Email subject line"),
	preview_text: z.string().optional().describe("Email preview text"),
	from_name: z.string().optional().describe("Sender name"),
	from_email: z.string().optional().describe("Sender email address"),
	reply_to_email: z.string().optional().describe("Reply-to email address"),
	send_at: z.string-time().optional().describe("Scheduled send time (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class MarketingCampaignStatus(str, Enum):
	DRAFT = 'DRAFT'
	SCHEDULED = 'SCHEDULED'
	SENDING = 'SENDING'
	SENT = 'SENT'
	CANCELLED = 'CANCELLED'
	PAUSED = 'PAUSED'
	ARCHIVED = 'ARCHIVED'
	OTHER = 'OTHER'

@dataclasses.dataclass
class MarketingCampaign:
	"""Unique identifier for the campaign"""
	id: Optional[str]
	"""When the campaign was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""When the campaign was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""Campaign nametitle"""
	name: Optional[str]
	"""Campaign type (e.g., regular, automation, ab_test)"""
	type: Optional[str]
	"""Campaign status"""
	status: Optional[MarketingCampaignStatus]
	"""Associated listaudience IDs"""
	list_ids: Optional[List[List[str]]]
	"""Email subject line"""
	subject_line: Optional[str]
	"""Email preview text"""
	preview_text: Optional[str]
	"""Sender name"""
	from_name: Optional[str]
	"""Sender email address"""
	from_email: Optional[str]
	"""Reply-to email address"""
	reply_to_email: Optional[str]
	"""Scheduled send time (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	send_at: Optional[str]
Are we missing anything? Let us know
Was this page helpful?